如何使用JavaScript Lodash将所有对象推入另一个数组

时间:2018-06-27 08:08:47

标签: javascript lodash

我通过Web API调用,并且在后台运行了不止一次。因此,我收到了提及的数据 commentRows

我必须将这些数据映射到另一个数组中。

var arrPush =[ ]; 
var commentRows ={  
   '@odata.context':'https:indexes',
   value:[  
      {  
         "key":"176611",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      },
      {  
         "key":"176100",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      }
   ]
}; 

arrPush.push(commentRows.value);

它为as生成数组,

[  
   [  
      {  
         "key":"176611",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      },
      {  
         "key":"176100",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      }
   ]
]

需要

   [  
      {  
         "key":"176611",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      },
      {  
         "key":"176100",
         "status":true,
         "errorMessage":null,
         "statusCode":200
      }
   ]

但是我不希望附加第一个[]可以使用任何 Lodash 来实现

4 个答案:

答案 0 :(得分:2)

这是一个可以处理value数组中的多个元素的解决方案:

使用_.flatten

var arrPush = [];
var commentRows = {  
       '@odata.context':'https:indexes',
       value:[  
          {  
             "key":"176611",
             "status":true,
             "errorMessage":null,
             "statusCode":200
          }
       ]
    };

arrPush.push(commentRows.value);
arrPush = _.flatten(arrPush);  // here you get it

答案 1 :(得分:0)

就像这样arrPush.push(commentRows.value [0]);

答案 2 :(得分:0)

var arrPush = [];
var commentRows = {  
  '@odata.context':'https:indexes',
  value:[  
    {  
       "key":"176611",
       "status":true,
       "errorMessage":null,
       "statusCode":200
    }
  ]
};

commentRows.value.forEach(x => arrPush.push(x))
console.log(arrPush);

使用forEach循环并将其推入arrPush

答案 3 :(得分:0)

您可以使用

arrPush = _.concat(arrPush, commentRows.value[0]).

这里的arrayToCopy是要将数据复制到的数组。