[英]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.