如何在数组的索引0处推送元素[重复]

Posted

技术标签:

【中文标题】如何在数组的索引0处推送元素[重复]【英文标题】:how to push an element at index 0 of an array [duplicate] 【发布时间】:2017-05-21 02:29:38 【问题描述】:

我有这样的情况,

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

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

我的问题:我怎样才能把push itemarray1变成这样我的array2

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

我可以确定index:0category

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

如果我能得到key valuearray 那对我有好处。

我的样本数据:

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


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

【问题讨论】:

【参考方案1】:

使用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)

【讨论】:

【参考方案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)

【讨论】:

以上是关于如何在数组的索引0处推送元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

大数数组的平衡索引,如何防止溢出?

如何在 javascript/jquery 中使用空元素在第三个索引处创建任何数组,例如 ['Aarav', 10, '', , '']

在某个索引打字稿/角度 9 处推送或拼接到对象数组上?

如何编辑firestore中存在的数组元素[重复]

如何在JS数组的顶部索引处过滤匹配的元素

如何在reducer中的数组索引处添加对象