将数组转换为object并将对象推送到数组-javascript

时间:2018-05-30 04:47:10

标签: javascript arrays json node.js object

我得到的响应数组数据是:

var data =[{
    'id':'1','name':'sam'
}];
var data =[{
    'id':'2','name':'ram'
}];
var data =[{
    'id':'2','name':'ragu'
}];

我将此数据转换为循环方法。 这个结果只是我的服务器端控制台。 但是,我的客户端只能查看第一个数组 所以,我需要将该数组数据转换为对象并推入另一个 var = arraydata

我试过这段代码:

            var arrayData =[];
            var  [objectData] = data;
            arrayData.push(objectData);

我试过结果是:

var arrayData =[{
            'id':'1','name':'sam'
        }];

但我只获得单个数据

我的预期结果是:

var arrayData =[{
        'id':'1','name':'sam'
    },{
        'id':'2','name':'ram'
    },{
        'id':'2','name':'ragu'
    }];

请为我提供任何解决方案!

8 个答案:

答案 0 :(得分:1)

您可以尝试使用Array concat()方法。



var data1 =[{
    'id':'1','name':'sam'
}];
var data2 =[{
    'id':'2','name':'ram'
}];
var data3 =[{
    'id':'2','name':'ragu'
}];

var arrayData = data1.concat(data2, data3);

console.log(arrayData);




使用ES6 Destructuring assignment



let data1 =[{
    'id':'1','name':'sam'
}];
let data2 =[{
    'id':'2','name':'ram'
}];
let data3 =[{
    'id':'2','name':'ragu'
}];

[...arrayData] = [...data1, ...data2, ...data3];

console.log(arrayData)




答案 1 :(得分:1)

ES6

您可以使用[].concat.apply([],[v1,va2.... so on]))来获取所需的结果。

<强>样本

var data =[{'id':'1','name':'sam'}], 
    data1 =[{'id':'2','name':'ram'}], 
    data2 =[{'id':'2','name':'ragu'}];
    
console.log([].concat.apply([],[data,data1,data2]))
.as-console-wrapper {max-height: 100% !important;top: 0;}

您还可以使用Spread_syntax

<强>样本

const data =[{'id':'1','name':'sam'}], 
    data1 =[{'id':'2','name':'ram'}], 
    data2 =[{'id':'2','name':'ragu'}];
    
console.log([...data,...data1,...data2])
.as-console-wrapper {max-height: 100% !important;top: 0;}

答案 2 :(得分:1)

我认为您的问题是var arrayData =[];,此代码创建的arrayData为空。

您应该使用var arrayData = arrayData || []; 希望对您有帮助。

答案 3 :(得分:0)

您可以按照以下示例查看.concat()

var data1 = [{
    'id':'1','name':'sam'
}];

var data2 = [{
    'id':'2','name':'ram'
}];

var out = [].concat(data1, data2);


// After more data, or one at a time example
var data3 = [{
    'id':'3','name':'ragu'
}];

out = out.concat(data3)

console.log(out);

-> [{
->    'id':'1','name':'sam'
-> },{
->    'id':'2','name':'ram'
-> },{
->     'id':'2','name':'ragu'
-> }];

答案 4 :(得分:0)

您可以将所有数组连接成一个::

假设我有3个数组

var data =[{
'id':'1','name':'sam'

}]; var data1 = [{     &#39; ID&#39;:&#39; 2&#39;&#39;名称&#39;:&#39;夯&#39; }]; var data2 = [{     &#39; ID&#39;:&#39; 3&#39;&#39;名称&#39;:&#39;肉酱&#39; }];

你可以通过

获得结果
var output=data.concat(data1,data)

答案 5 :(得分:0)

你可以使用.forEatch()

@ViewChild

答案 6 :(得分:0)

试试这个,

使用ES6扩展运算符并将新数组对象推入旧数组。

var data =[{
    'id':'1','name':'sam'
}];
var data1 =[{
    'id':'2','name':'ram'
}];

data.push(...data1)

希望这可以帮助你:)

答案 7 :(得分:0)

可以使用Spread运算符

创建对象数组
var data1 = [{
    'id':'1','name':'sam'
}];

var data2 = [{
    'id':'2','name':'ram'
}];
var data3 =[{
   'id':'2','name':'ragu'
}]; 
var data=[...data1,...data2, data3]

//console.log(data)

这将返回JSON对象[{},{},{}]