创建阵列有条件(JavaScript)的

我们如何从(我想提取的值id)创建阵列有条件(JavaScript)的

[ 

{id:1, added: true, name: 'Book'}, -> I want to extract id value!

{id:2, added: true, name: 'Desk'},

{id:5, added: true, name: 'Rock'},

{id:3, added: false, name: 'Rock'},

{id:7, added: false, name: 'Rock'},

{id:8, added: false, name: 'Rock'},

]

,并创建一个值的数组的数组中提取特定字段的值。 (只有添加字段为真)

预期输出将为[1, 2, 5]

这将是巨大的,如果我们能抓住,当我们越来越[]空数组的边缘情况。

请随意使用lodash(如果它的速度更快和简单比vanila的JavaScript)

回答:

你只可以使用Array#filter结合Array#map功能

const arr = [  

{id:1, added: true, name: 'Book'},

{id:2, added: true, name: 'Desk'},

{id:5, added: true, name: 'Rock'},

{id:3, added: false, name: 'Rock'},

{id:7, added: false, name: 'Rock'},

{id:8, added: false, name: 'Rock'},

];

const mappedArr = arr.filter(item => item.added).map(item => item.id);

console.log(mappedArr);

回答:

const arr = [ 

{id:1, added: true, name: 'Book'},

{id:2, added: true, name: 'Desk'},

{id:5, added: true, name: 'Rock'},

{id:3, added: false, name: 'Rock'},

{id:7, added: false, name: 'Rock'},

{id:8, added: false, name: 'Rock'},

];

arr.reduce((prev, curr) => {

if (curr.added) {

return [...prev, curr.id];

}

return prev;

}, []);

回答:

您可以使用array#reduce并检查added财产,如果它是trueid添加到累加器。

var data = [ {id:1, added: true, name: 'Book'}, {id:2, added: true, name: 'Desk'}, {id:5, added: true, name: 'Rock'}, {id:3, added: false, name: 'Rock'}, {id:7, added: false, name: 'Rock'}, {id:8, added: false, name: 'Rock'}],  

result = data.reduce((r, {id, added}) => {

if(added)

r.push(id);

return r;

}, []);

console.log(result);

回答:

首先filter出具有added为假则map整个结果得到id项目:

let result = _(data) 

.filter('added')

.map('id')

.value();

以上是 创建阵列有条件(JavaScript)的 的全部内容, 来源链接: utcz.com/qa/260319.html

回到顶部