用多维数据展平javascript数组
如何在javascript中实现这一点用多维数据展平javascript数组,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,如何在javascript中实现这一点 [ [ task: 2 ], [ status: 'REFUND' ], [], [ amount: 872.2 ] ] 例如: [task: 2, status: 'REFUND', amount: 872.2] 尝试了几个选项,包括Array.prototype.reduce(),但对我无效。您可以使用join() 一个好的起点: array[0] = array[0].join(", "); 可以使用下划线.j
[
[ task: 2 ],
[ status: 'REFUND' ],
[],
[ amount: 872.2 ]
]
例如:
[task: 2, status: 'REFUND', amount: 872.2]
尝试了几个选项,包括Array.prototype.reduce(),但对我无效。您可以使用join()
一个好的起点:
array[0] = array[0].join(", ");
可以使用下划线.js
var u = require('underscore');
u.reduce(a, function(memo, item) {
var o = {};
u.each(memo, function(v, k) {
o[k] = v;
});
u.each(item, function(v, k) {
o[k] = v;
});
return o;
});
输入: 输出:
{
task: 2,
status: 'REFUND',
amount: 872.2
}
你的语法是无效的;对象文本之外不允许有
:
var arr = [
[{task: 2}],[{status: 'REFUND'}],[],[{amount: 872.2}]
];
要展平阵列,请使用多功能的reduce
:
var result = arr.reduce(function(a,b) {
return a.concat(b)
}); //result.length === 3
您的结果包含3个元素,[]
被过滤掉
reduce
是ECMAScript第5版的一部分。请确保您的浏览器支持此功能。请检查此功能
var a = [], b = [],c = [],d=[];
a['task'] = 2;
b['status'] = 'REFUND';
d['amount']= 872.2
c.push(a);
c.push(b);
c.push(d)
var arr = [];
console.log(c)
for(var key in c){
//console.log(Object.keys(c[key]),c[key][Object.keys(c[key])]);
arr[Object.keys(c[key])]=c[key][Object.keys(c[key])];
}
console.log(arr) // please see the console.
这是你的意思是{task:2}等等,对吗?不。我从array.push()中得到上面的结果,如下所示:var a=[];var b=[];var c=[];a[任务]=2;b[状态]=“退款”;c、 由于某种原因,我不能把它们放在一个变量中。它们来自不同的函数。下划线没有展平方法吗?下划线有展平方法。但在这种情况下不能使用它。如果它是一个数组中的一个数组,它就会工作。但是由于它是一个对象数组,所以flatte将返回输入本身。
var a = [], b = [],c = [],d=[];
a['task'] = 2;
b['status'] = 'REFUND';
d['amount']= 872.2
c.push(a);
c.push(b);
c.push(d)
var arr = [];
console.log(c)
for(var key in c){
//console.log(Object.keys(c[key]),c[key][Object.keys(c[key])]);
arr[Object.keys(c[key])]=c[key][Object.keys(c[key])];
}
console.log(arr) // please see the console.