【问题标题】:Convert array to object and push object into array -javascript将数组转换为对象并将对象推入数组-javascript
【发布时间】:2018-11-08 19:54:19
【问题描述】:

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

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'
    }];

请给我任何解决方案!

【问题讨论】:

标签: javascript arrays json node.js object


【解决方案1】:

你可以试试Arrayconcat()方法。

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)

【讨论】:

    【解决方案2】:

    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;}

    【讨论】:

    • 我将 const 数据值放入循环中。是一一获取到常量数据
    • 所以你可以在循环中使用相同的内容。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      您可以按照以下示例使用.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'
      -> }];
      

      【讨论】:

        【解决方案5】:

        您可以将所有数组合并为一个::

        假设我有 3 个数组

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

        }]; 变量数据1 = [{ 'id':'2','name':'ram' }]; 变量数据2 = [{ 'id':'3','name':'ragu' }];

        你可以得到结果

        var output=data.concat(data1,data)
        

        【讨论】:

          【解决方案6】:

          你可以使用 .forEatch()

          var data = [{
              'id':'1','name':'sam'
          }];
          
          var data2 = [{
              'id':'2','name':'ram'
          }];
          
          data2.forEach(element => {
              data.push(element);
          });
          
          console.log(data);
          

          【讨论】:

            【解决方案7】:

            试试这个,

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

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

            希望对你有帮助:)

            【讨论】:

              【解决方案8】:

              可以使用展开运算符创建对象数组

              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 对象 [{},{},{}]

              【讨论】:

                猜你喜欢
                • 2019-10-22
                • 1970-01-01
                • 2017-01-14
                • 2011-02-13
                • 2021-01-07
                • 2021-05-07
                • 2021-01-15
                • 2021-06-19
                • 2017-11-13
                相关资源
                最近更新 更多