有条件地创建数组(Javascript)

有条件地创建数组(Javascript),javascript,arrays,lodash,Javascript,Arrays,Lodash,如何从数组中提取特定字段的值(我想提取id值) 并使用这些值创建一个数组。(仅当添加的字段为真时) 预期输出将是[1,2,5] 如果我们在得到[]空数组时能够抓住边缘情况,那就太好了。 请随意使用lodash(如果它比vanila javascript更快、更简单的话)您只需结合使用函数即可 const arr=[ {id:1,添加:true,名称:'Book'}, {id:2,added:true,name:'Desk'}, {id:5,添加:true,名称:'Rock'}, {id:3,添

如何从数组中提取特定字段的值(我想提取id值

并使用这些值创建一个数组。(仅当添加的字段为真时

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

如果我们在得到[]空数组时能够抓住边缘情况,那就太好了。

请随意使用lodash(如果它比vanila javascript更快、更简单的话)

您只需结合使用函数即可

const arr=[
{id:1,添加:true,名称:'Book'},
{id:2,added:true,name:'Desk'},
{id:5,添加:true,名称:'Rock'},
{id:3,添加:false,名称:'Rock'},
{id:7,添加:false,名称:'Rock'},
{id:8,添加:false,名称:'Rock'},
];
const mappedArr=arr.filter(item=>item.added).map(item=>item.id);
console.log(mappedArr)
您可以使用
array#reduce
并检查
added
属性,如果该属性为
true
则将
id
添加到累加器中

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'}],
结果=数据.reduce((r,{id,added})=>{
如有(新增)
r、 推送(id);
返回r;
}, []); 
控制台日志(结果)首先将添加了
的项目列为false,然后跨结果获取
id

let result = _(data)
    .filter('added')
    .map('id')
    .value();

很抱歉回信晚了。但我们能有条件地这样做吗????对不起,我编辑了这个问题。我想你可以像施咒一样解决它。首先感谢sadd
Array#filter
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;
}, []);
let result = _(data)
    .filter('added')
    .map('id')
    .value();