有条件地创建数组(Javascript)
如何从数组中提取特定字段的值(我想提取id值) 并使用这些值创建一个数组。(仅当添加的字段为真时) 预期输出将是有条件地创建数组(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,添
[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();
很抱歉回信晚了。但我们能有条件地这样做吗????对不起,我编辑了这个问题。我想你可以像施咒一样解决它。首先感谢saddArray#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();