将对象数组及其属性转换为数组
Convert array of objects and their properties to array
我尝试了几个地图函数,但找不到合适的方法来获得我想要的东西。情况是这样的:
Object {Results:Array[3]}
Results:Array[3]
[0-2]
0:Object
id=null
name: "Rick"
upper:"0.67"
1:Object
id="00379321"
name:null
upper:"0.46"
2:Object
id="00323113"
name:null
upper:null
我希望我的最终结果看起来像这样。我希望删除所有 null 值,并将所有条目像这样绑定在一个对象中。
var finalResult = ["Rick","0.67","00379321","0.46","00323113"];
我怎样才能达到这个结果?
_.chain(a)
.map(function(x) {return _.values(x)})
.flatten()
.filter(function(x) {return x != null;})
.value()
对@andrey代码的小修改(需要 lodash.js)
var a = [{id:null, name: "Rick", upper:"0.67"}, {id:"00379321", name:null, upper:"0.46"}, {id: "00323113",name:null, upper:null}]
_(a)
.map(function(x) {return _.values(x)})
.flatten()
.without(null)
.value()
我建议对键使用固定数组,因为对象的属性没有顺序,并且顺序是相关的。
var data = [{ id: null, name: "Rick", upper: "0.67" }, { id: "00379321", name: null, upper: "0.46" }, { id: "00323113", name: null, upper: null }],
result = [];
data.forEach(function (a) {
['id', 'name', 'upper'].forEach(function (k) {
if (a[k] !== null) {
result.push(a[k]);
}
});
});
console.log(result);
另一个下划线解决方案,类似于其他下划线解决方案,但使用 reject 和 isNull 谓词:
var result = _.chain(data)
.map(_.values)
.flatten()
.reject(_.isNull)
.value();
相关文章:
- 使用JS将数组转换为json对象
- 本地存储中的字符串到字节数组转换
- Javascript函数,用于将数组转换为“;2-元组”;
- php数组转换为javascript
- 在Javascript中将一个值和字符串数组转换为if语句
- 将数组转换为javascript格式的字符串
- 如何将数组转换为有效的json
- JSON数组转换为JS对象数组
- 如何将数组转换为映射
- JavaScript:将字符串数组转换为文本区域
- javascript |数组转换
- 数组转换为多个字符串
- Javascript将数组转换为字符串并使其反向输出
- 将Byte数组转换为Angularjs中的Base64字符串
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 将Javascript数组转换为PHP数组
- 将数组转换为键值对
- 使用Ramda将对象数组转换为普通对象
- javascript将对象数组转换为字符串以存储在s3中
- 使用.join方法将数组转换为不带逗号的字符串