2017-01-06 28 views
5

tôi có một tình huống như thế này,làm thế nào để thúc đẩy một phần tử ở chỉ số 0 của một mảng

tôi có 2 array1 như array1 = ["fruit","vegetables"];

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

câu hỏi của tôi: làm thế nào tôi có thể push item từ array1 để làm cho array2 của tôi trông giống như thế này

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

với điều đó tôi có thể xác định index:0 như category.

MYdata structure là những 2 arrayarray1 = ["fruit","vegetables"];array2 = [["apple","banana"],["tomato"]];

nếu tôi có thể nhận được keyvalue cặp array rằng sẽ tốt cho tôi.

dữ liệu mẫu của tôi:

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


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

Trả lời

3

Sử dụng Array#unshift phương pháp.

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)


UPDATE: Nếu bạn không muốn tạo ra một mảng mới sau đó bạn có thể tránh được một phần sao chép.

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)

Với ES6 arrow function:

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

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

 
console.log(array2)

+1

@balan lời giải thích tốt từng bước cảm ơn rất nhiều – EaB

3

Hãy thử Array.map() này và Array.unshift(). unshift() đẩy dữ liệu vào mảng [0]index vị trí.

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

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

Các vấn đề liên quan