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

DCUFan7

给定一个数组:

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 (',');
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ruby:将字符串数组映射到数组数组

映射字符串数组的最佳方法

将字符串数组映射到单个数组

将字符串数组映射到特定对象数组

Angular:将字符串数组映射到 http get 调用中的枚举值数组

将 PIN 映射到字符串数组和从字符串数组映射

使用AutoMapper将字符串数组映射到对象

将字典映射到数组到字符串

Python-将字符串映射到布尔数组

如何将字符串数组映射到新的字符串数组?

如何键入映射到对象的字符串数组,其中键及其值是数组值

从可观察数组映射到不同的字符串数组

Dataweave-将多个字符串数组映射到单个数组

如何 Java 将多个条件从 int 数组映射到字符串数组

按字符串计算并存储映射到其他值

将映射值转换为字符串数组

使用 PHP 将字符串数组值传输到其他 HTML 页面

将字符串数组转换为向量的最佳方法?

将特定字符串转换为数组的最佳方法

使用 PHP 保留键和值将数组转换为字符串的最佳方法

Json用字符串和数组映射到

一致地将字符串映射到数组索引(哈希函数)

将字符串数组映射到对象键并获取值

使用Jackson将JSON字符串数组映射到List <String>

将 object.keys 从对象数组映射到字符串

使用Object.keys将数组错误映射到字符串(javascript)

将字符串数组映射到 JavaScript 中的 json 对象

将字符串数组映射到React-Native / ES6中的组件状态

Kotlin将&减少字符串数组映射到Map <String,Any!>