簡體   English   中英

如何檢查一個對象數組是否包含另一個對象數組的所有 id JS

[英]How to check if an array of objects contains all the ids of another array of objects JS

我有 2 個對象數組;

// First one :
[0: {id: 1},
1: {id: 2},
2: {id: 3},
3: {id: 4}]

// Second one :
[0: {id: 10},
1: {id: 1},
2: {id: 4},
3: {id: 76},
4: {id: 2},
5: {id: 47},
6: {id: 3}]

我想測試第二個是否至少具有與第一個相同的 ID。 在這種情況下這是正確的,因為第二個包含 1、2、3 和 4 個 ID。

我嘗試使用 some() 和 every() 但它不能正常工作

我的嘗試:

let res = this.trainingEpisodesList.some( episode => {
    this.completedEpisodes.every( userEpisode => {
         userEpisode.id == episode.id;
     })
});

謝謝 ;)

ES7,

let result = one.map(a => a.id);
let result2 = two.map(a => a.id);
const final_result = result.every(val => result2.includes(val));

ES5,

var result = one.map(a => a.id);
var result2 = two.map(a => a.id);

var final_result = result.every(function(val) {

  return result2.indexOf(val) >= 0;

});

你可以使用everyfind來做到這一點:

 let completedEpisodes = [ {id: 1}, {id: 2}, {id: 3}, {id: 4} ] let trainingEpisodesList = [ {id: 10}, {id: 1}, {id: 4}, {id: 76}, {id: 2}, {id: 47}, {id: 3} ] let containsAllCompleted = trainingEpisodesList.every(c => completedEpisodes.find(e=>e.id==c.id)); console.log(containsAllCompleted);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM