簡體   English   中英

比較對象數組和奇異值數組

[英]Compare an array of objects and an array of singular values

我有兩個數組。 一個用對象填充,另一個用值填充。 見下面的代碼:

const data = [
   {id: 1, name: 'ben'},
   {id: 2, name: 'ben'}, 
   {id: 3, name: 'ben'}, 
   {id: 4, name: 'ben'}
];
const ids = [1,3,4,5]

我只想從數據數組中選擇id屬性與 ids 數組中的任何值匹配的對象。

我應該怎么做最好?

提前致謝

這是一個可能有幫助的代碼片段。

 const data = [{id:1, name:'ben'},{id:2, name:'ben'}, {id:3, name:'ben'}, {id:4, name:'ben'}]; const ids = [1,3,4,5]; const newData = data.filter(chunk => ids.includes(chunk.id)); console.log("Filtered Data", newData);

最簡單的方法是數組filter函數:

 const data = [{id:1, name:'ben'},{id:2, name:'ben'}, {id:3, name:'ben'}, {id:4, name:'ben'}]; const ids = [1, 3, 4, 5]; const result = data.filter(({id}) => ids.includes(id)); console.log(result);

作為替代方法,您可以使用放置在filter方法中的some方法:

data.filter(chunk => ids.some(s => s == chunk.id));

一個例子:

 const data = [{id:1, name:'ben'},{id:2, name:'ben'}, {id:3, name:'ben'}, {id:4, name:'ben'}]; const ids = [1,3,4,5]; const newData = data.filter(chunk => ids.some(s => s== chunk.id)); console.log("Filtered Data", newData);

您可以使用Array.prototype.filter過濾初始數組,使用Array.prototype.includes排除不匹配的實體:

const data = [
  { id: 1, name: "ben" },
  { id: 2, name: "ben" },
  { id: 3, name: "ben" },
  { id: 4, name: "ben" }
];
const ids = [1, 3, 4, 5];

const filteredData = data.filter(dataItem => ids.includes(dataItem.id));
console.log(filteredData); // [{"id":1,"name":"ben"},{"id":3,"name":"ben"},{"id":4,"name":"ben"}] 

暫無
暫無

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

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