我有一个像这样的对象数组:
var array = [
[
{
name: 'a',
value: 1,
where: '1st array'
},
{
name: 'b',
value: 2,
where: '1st array'
}
],
[
{
name: 'a',
value: 1,
where: '2nd array'
},
{
name: 'b',
value: 2,
where: '2nd array'
}
]
]
我想把它转换成这个:
[
['a', 1, '1st array'],
['b', 2, '1st array'],
['a', 1, '2nd array'],
['b', 2, '2nd array']
]
可以使用array.map()
方法完成吗?我问,因为可能有超过1000个对象/数组需要转换,我认为for
内的for
可能效率不高......
答案 0 :(得分:2)
使用简单的for循环使用Object.values方法,将值作为数组
var arr = [
[
{
name: 'a',
value: 1,
where: '1st array'
},
{
name: 'b',
value: 2,
where: '1st array'
}
],
[
{
name: 'a',
value: 1,
where: '2nd array'
},
{
name: 'b',
value: 2,
where: '2nd array'
}
]
];
var newArr = [];
for(let i in arr){
for(let j in arr[i]){
newArr.push(Object.values(arr[i][j]));
}
}
console.log(newArr);

答案 1 :(得分:1)
您可以为内部数组使用销毁分配。
{{ URL::asset('assets/') }}
答案 2 :(得分:0)
这是另一种实现这一目标的方法。获取values=Object.values(array)
之类的值,并使用简单的for loop
迭代这些值。
var array = [
[
{
name: 'a',
value: 1,
where: '1st array'
},
{
name: 'b',
value: 2,
where: '1st array'
}
],
[
{
name: 'a',
value: 1,
where: '2nd array'
},
{
name: 'b',
value: 2,
where: '2nd array'
}
]
]
var outPut =[]
var values=Object.values(array);
//console.log(values);
for(var i=0;i<values.length;i++){
for(var j=0;j<values[i].length;j++){
//console.log(values[i][j]);
outPut.push(Object.values(values[i][j]));
}
}
console.log(outPut);
答案 3 :(得分:0)
你需要按照以下方式做到这一点......你可以改进它如果你不想让它变得静止,你可以让它变得动态。但它将是冗长的代码... :) var object1,object2;
array[0].forEach(function(element,index){
obejct1[index] = Object.values(element);
});
array[1].forEach(function(element,index){
obejct2[index] = Object.values(element);
});
object1[0].concat(object1[1],object2[0],object1[1]);