用多维数据展开javascript数组

如何才能在javascript中展现这一点?

[ [ task: 2 ], [ status: 'REFUND' ], [], [ amount: 872.2 ] ] 

像这样的东西:

 [task: 2, status: 'REFUND', amount: 872.2] 

尝试了几个选项,包括Array.prototype.reduce(),但没有为我工作。

你可以使用join()

一个好的起点:

 array[0] = array[0].join(", "); 

你可以使用underscore.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; }); 

input:

 [ { task: 2 }, { status: 'REFUND' }, {}, { amount: 872.2 } ] 

输出:

 { 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个元素,因为[]被过滤掉

reduceECMAScript第五版的一部分。 确保您的浏览器支持它。

请检查这一个。

 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. 

这里是抢劫者