如何在数组的索引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 item
从array1
变成这样我的array2
[["fruit","apple","banana"],["vegetables","tomato"]];
我可以确定index:0
为category
。
我的data structure
是这两个array
array1 = ["fruit","vegetables"];
和array2 = [["apple","banana"],["tomato"]];
如果我能得到key
value
对array
那对我有好处。
我的样本数据:
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, '', , '']