如何在数组的索引0处推送元素

时间:2017-01-06 10:35:39

标签: javascript jquery node.js

我有这种情况,

我有2 array1作为array1 = ["fruit","vegetables"];

array2 = [["apple","banana"],["tomato"]]; // index 0:represent fruit i,e (["apple","banana"]), index 1: vegetables i,e (["tomato"])

我的问题:我如何push item来自array1,以使array2看起来像这样

[["fruit","apple","banana"],["vegetables","tomato"]];

我可以将index:0确定为category

我的 data structure就是这两个array array1 = ["fruit","vegetables"];array2 = [["apple","banana"],["tomato"]];

如果我能够获得对我有益的key valuearray

我的样本数据:

array1 = ["fruit","vegetables"];


array2 = [["apple","banana"],["tomato"]]; //expected output :[["fruit","apple","banana"],["vegetables","tomato"]];

2 个答案:

答案 0 :(得分:3)

使用Array#unshift方法。



var array1 = ["fruit", "vegetables"],
  array2 = [
    ["apple", "banana"],
    ["tomato"]
  ];

var array3 = array2.map(function(v, i) { // iterate over the array to generate the new array
  var arr = v.slice(); // copy the array
  arr.unshift(array1[i]) // insert element at beginning 
  return arr; /// return generated array
});

console.log(array3)




更新:如果您不想创建新阵列,则可以避免复制部分。



var array1 = ["fruit", "vegetables"],
  array2 = [
    ["apple", "banana"],
    ["tomato"]
  ];

array2.forEach(function(v, i) { // iterate over the array 
  v.unshift(array1[i]) // insert element at beginning 
});

console.log(array2)




使用ES6 arrow function



var array1 = ["fruit", "vegetables"],
  array2 = [
    ["apple", "banana"],
    ["tomato"]
  ];

array2.forEach((v, i) => v.unshift(array1[i]));

console.log(array2)




答案 1 :(得分:2)

试试这个Array.map()Array.unshift()unshift()将数据推送到数组[0]index位置。



array1 = ["fruit","vegetables"];
array2 = [["apple","banana"],["tomato"]]; 

array2.map((a,i) =>  a.unshift(array1[i]))
console.log(array2)




相关问题