如何扁平化多维数组包含对象在javascript
how to flatten multidimensional array containing objects in javascript
我有一个多维数组,里面有对象,我怎么才能使它平坦
myarr[0] =[{"name":"john","age":"50","location":"san diego"}
,{"name":"jane","age":"25","location":"new york"}
,{"name":"susane","age":"10","location":"los angeles"}
];
myarr[1] =[{"smoker":"yes","drinker":"no","insured":"no"}
,{"smoker":"no","drinker":"no","insured":"yes"}
,{"smoker":"no","drinker":"yes","insured":"no"}
];
myarr[1] =[{"status":"married","children":"none"}
,{"status":"unmarried","children":"one"}
,{"status":"unmarried","children":"two"}
];
我认为这就是你想要做的。
首先需要一个简单的辅助函数来合并两个对象:
function merge(a, b) {
a = a || { };
for(var k in b)
if(b.hasOwnProperty(k))
a[k] = b[k];
return a;
}
然后你可以循环遍历数组的数组来合并对象:
var flat = [ ];
for(var i = 0; i < myarr.length; ++i)
for(var j = 0; j < myarr[i].length; ++j)
flat[j] = merge(flat[j], myarr[i][j]);
然后排序:
flat.sort(function(a, b) {
a = a.location;
b = b.location;
if(a < b)
return -1;
if(a > b)
return 1;
return 0;
});
演示(打开JavaScript控制台运行):http://jsfiddle.net/ambiguous/twpUF/
引用:
-
hasOwnProperty
-
sort
相关文章:
- 如何遍历包含对象的数组-javascript
- 如何确定对象内部包含对象的JSON的长度
- 对包含对象的JSON对象进行排序
- 如何使用Typescript创建一个包含对象的字段的新对象
- JS函数返回一个包含对象的数组
- 如何对姓氏进行排序,格式化电话号码,并返回一个包含对象数组值的字符串
- 当在JSON中使用包含对象的对象与对象数组时,可接受的约定是什么
- 如何加载包含对象对象的 JSON 文件的每个部分
- 如何从动态包含对象的变量生成对象数组
- 根据另一个包含角度 js 中对象的数组过滤包含对象的数组
- 将对象转换为包含对象作为元素 0 的数组
- 如何使用包含对象键名的变量访问对象属性
- 从包含对象的数组中查找最小值的最佳方法
- 使函数返回一个包含对象的数组
- 当 JSDoc 是包含对象的数组时,文档变量如何
- 使用对象对数组进行切片,并获取包含对象副本的数组
- AngularJS从包含对象的数组中过滤掉
- 如何将包含对象而不是字符串的正文发布到 HTTP API?棱角2.
- 如何在不使用JQuery的情况下查看数组是否包含对象
- 试图循环遍历包含包含对象的数组的数组,以匹配数据