gpt4 book ai didi

Javascript 从数组中过滤值

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:23 25 4
gpt4 key购买 nike

我有一个数组数组,每个数组都包含两个元素。如何通过过滤第一个元素从数组中返回第二个元素?

例如,我有以下数组,我的函数应从第一项为 8 的每个子数组返回第二个元素:

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']];

预期结果:['first', 'second', 'third']

这是我到目前为止实现的,但它返回两个元素,而不是每个匹配的数组中的第二个元素...

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']];
var result = array.filter(function(item){
if(item[0] == 8) {
return item[1];
}
});
console.log(result);

最佳答案

您可以根据条件进行过滤,然后只需要映射您想要的部分。

在单个循环中,只有 Array#reduce 才有可能,因为在这里您可以操作结果集的值。

Array#filter返回数组的原始项目,不做任何更改。

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

对于过滤,回调需要返回一个被解释为 bool 值的值,这意味着每个真值(如对象、数组或任何非零数字等)都将项目作为结果集。

如果您只想使用内部数组的一部分并且该部分是真实值,则过滤有效,但它不会获取返回值,因为它不是为此而设计的。

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']],
result = array.filter(function(item){
return item[0] === 8;
}).
map(function (a) {
return a[1];
});

console.log(result);

关于Javascript 从数组中过滤值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46682845/

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