gpt4 book ai didi

javascript - 根据其他数组值将字符串映射到数组的最佳方法

转载 作者:行者123 更新时间:2023-12-04 01:03:36 24 4
gpt4 key购买 nike

给定一个数组:

var arrOfObj = [{
name: 'eve',
col1 : 1,
col2 : 0,
col3 : 1
}, {
name: 'john',
col1 : 1,
col2 : 1,
col3 : 0
}, {
name: 'jane',
col1 : 0,
col2 : 1,
col3 : 1
}];

我需要数组中的一个字段,其中包含列 col1、col2、col3 的名称字符串(如果它们为 1)。示例结果为:

var arrOfObj = [{
name: 'eve',
col1 : 1,
col2 : 0,
col3 : 1,
account : "col1,col3"
} //etc
}]

我目前可以用

var result = arrOfObj.map(function(o) {
o.account = ""
if (o.col1 > 0) {o.account = o.account + "col1,"} ;
if (o.col2 > 0) {o.account= o.account + "col2,"} ;
if (o.col3 > 0) {o.account= o.account + "col3,"} ;
o.account = o.account.slice(0, -1);
return o;
})

console.log(result)

但是作为 JS 的新手,这感觉效率很低。我的实际数组有十几个正在评估的此类列。

编辑:在已接受答案的帮助下完成的产品:

var bool_cols = ["col1","col2","col3"]

data.forEach(x => {
x.services = Object.keys(x).filter (y => bool_cols.includes(x) && x[y] == 1).join (',');
})

我喜欢我可以无限扩展过滤条件的方式!

最佳答案

怎么样

arrOfObj.forEach ( (x) => {
x.account = Object.keys(x).filter (y => x[y] == 1).join (',');
})

关于javascript - 根据其他数组值将字符串映射到数组的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59707438/

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