gpt4 book ai didi

Javascript - 根据 id 过滤器从数组中提取项目以创建 2 个数组

转载 作者:行者123 更新时间:2023-11-28 15:12:28 25 4
gpt4 key购买 nike

我只是在寻找一种好方法来做到这一点:

我有 2 个数组:

 var allItems = [
{'id' : '1', 'title' : 'Title 1' },
{'id' : '2', 'title' : 'Title 2' },
{'id' : '3', 'title' : 'Title 3' },
{'id' : '4', 'title' : 'Title 4' },
{'id' : '5', 'title' : 'Title 5'},
{'id' : '6', 'title' : 'Title 6' }
];

var idsToExtract = ['1', '3', '6'];

我正在寻找包含两个如下所示数组的结果:

    var array1 = [
{'id' : '1', 'title' : 'Title 1' },
{'id' : '3', 'title' : 'Title 3' },
{'id' : '6', 'title' : 'Title 6'}
];

var array2 = [
{'id' : '2', 'title' : 'Title 2' },
{'id' : '4', 'title' : 'Title 4' },
{'id' : '5', 'title' : 'Title 5'}
];

我只使用原生 JS (ES2015) 数组方法。( map /过滤器等)。

没有jquery/下划线等

谢谢!

最佳答案

Array.prototype.filter() method可以帮助您:

var allItems = [
{'id' : '1', 'title' : 'Title 1' },
{'id' : '2', 'title' : 'Title 2' },
{'id' : '3', 'title' : 'Title 3' },
{'id' : '4', 'title' : 'Title 4' },
{'id' : '5', 'title' : 'Title 5'},
{'id' : '6', 'title' : 'Title 6' }
];

var idsToExtract = ['1', '3', '6'];

var array1 = allItems.filter(function(item) {
return idsToExtract.indexOf(item.id) !== -1;
});

var array2 = allItems.filter(function(item) {
return idsToExtract.indexOf(item.id) === -1;
});

当然你可以使用Array.prototype.foreach() method ,并在一个迭代周期中创建 2 个数组:

var allItems = [
{'id' : '1', 'title' : 'Title 1' },
{'id' : '2', 'title' : 'Title 2' },
{'id' : '3', 'title' : 'Title 3' },
{'id' : '4', 'title' : 'Title 4' },
{'id' : '5', 'title' : 'Title 5'},
{'id' : '6', 'title' : 'Title 6' }
];

var idsToExtract = ['1', '3', '6'],
array1 = [],
array2 = [];

allItems.forEach(function(item) {
idsToExtract.indexOf(item.id) !== -1 ? array1.push(item) : array2.push(item);
});

关于Javascript - 根据 id 过滤器从数组中提取项目以创建 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35789574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com