Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将对象转换为数组_Javascript_Arrays - Fatal编程技术网

Javascript将对象转换为数组

Javascript将对象转换为数组,javascript,arrays,Javascript,Arrays,我有一个对象数组,如下所示: var array = [ [ { name: 'a', value: 1, where: '1st array' }, { name: 'b', value: 2, where: '1st array' } ], [ { name: 'a', value: 1, wher

我有一个对象数组,如下所示:

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
可能没有效率…

这里是实现这一点的另一种方法。获取像
values=Object.values(array)
这样的值,并使用simple
for loop
对这些值进行迭代

var数组=[
[
{
名称:‘a’,
价值:1,
其中:“第一阵列”
},
{
名称:‘b’,
价值:2,
其中:“第一阵列”
}
],
[
{
名称:‘a’,
价值:1,
其中:“第二阵列”
},
{
名称:‘b’,
价值:2,
其中:“第二阵列”
}
]
]
变量输出=[]
变量值=对象值(数组);
//console.log(值);

对于(var i=0;i使用simple for loop for this with method,以数组形式获取值

var-arr=[
[
{
名称:‘a’,
价值:1,
其中:“第一阵列”
},
{
名称:‘b’,
价值:2,
其中:“第一阵列”
}
],
[
{
名称:‘a’,
价值:1,
其中:“第二阵列”
},
{
名称:‘b’,
价值:2,
其中:“第二阵列”
}
]
];
var newArr=[];
为了(让我进来){
for(让j进入arr[i]){
newArr.push(对象值(arr[i][j]);
}
}

console.log(newArr);
您需要以以下方式执行此操作…如果不想使其成为静态的,您可以对其进行改进,也可以使其成为动态的。但这将是一个冗长的代码…:) 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]);

可以对内部数组使用销毁分配

var-array=[{name:'a',value:1,其中:'1st-array'},{name:'b',value:2,其中:'1st-array'}],{name:'a',value:1,其中:'2nd-array'},{name:'b',value:2,其中:'2nd-array'}],
结果=array.reduce(
(r,a)=>r.concat(a.map({name,value,where})=>([name,value,where]),
[]
);

控制台日志(结果)如果执行时间很关键,您可以编写最快的解决方案和测试。我认为
会比你想象的好。看看这里:循环1000个元素不会慢,不管你怎么做。@KIKOSoftware对于嵌套数组,我该如何做
array.map()
,就像我的例子中一样?你无论如何都需要循环。除非您希望在特定索引中提取数据而不进行迭代。反正是O(N),