Javascript嵌套数组到单个数组而不使用循环

时间:2017-10-17 07:00:02

标签: javascript arrays

我有这样的JSON数组:

var items = [
   [{id:1,name:'test'},{id:2,name:'test'},...]  ,
   [{id:1,name:'test'},{id:2,name:'test'},...]  ,
]

由此我需要一个这样的数组:

var newArray = [
  { id: 1, name: 'test' }, { id: 2, name: 'test'}, { id: 3, name: 'test'}, ...
]

现在我在for数组上使用items循环并存储到newArray但是还有其他方法没有使用循环吗?

2 个答案:

答案 0 :(得分:1)

演示1: concat().apply()

<小时/> 演示2: reduce()concat() 演示3: ... Spread Operatorconcat()

演示1

&#13;
&#13;
var items = [
   [{id:1,name:'test'},{id:2,name:'test'}]  ,
   [{id:1,name:'test'},{id:2,name:'test'}]  ,
]

var flattened = [].concat.apply([], items);

console.log(flattened);
&#13;
&#13;
&#13;

演示2

&#13;
&#13;
var items = [
   [{id:1,name:'test'},{id:2,name:'test'}],
   [{id:1,name:'test'},{id:2,name:'test'}]
];

var flattened = items.reduce(function(prev, curr) {
  return prev.concat(curr);
});

console.log(flattened);
&#13;
&#13;
&#13;

演示3

&#13;
&#13;
var items = [
   [{id:1,name:'test'},{id:2,name:'test'}],
   [{id:1,name:'test'},{id:2,name:'test'}] 
];

var flattened = [].concat(...items);

console.log(flattened);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我喜欢数组的功能和新原型,所以这里是我的demo

var items = [
   [{id:1,name:'test'},{id:2,name:'test'}]  ,
   [{id:1,name:'test'},{id:2,name:'test'}] 
]
var ll = items.reduce(function(prev, current){return prev.concat(current)})
console.log(ll)
相关问题