2017-10-06 111 views
0

我想知道如何根據第一個值重複與另一個數組的數組。當創建一個新數組時如何爲每一行添加一個索引。 例子:重複Array Array值並創建索引

Table Base 
Total | Item | Description | Price 
5  | 946 | T-Shirt Red | $10 
3  | 456 | T-Shirt Black | $12 
2  | 489 | T-Shirt Blue | $11.50 

Table Result 
Index | Total | Item | Description | Price 
1  | 5  | 946 | T-Shirt Red | $10 
2  | 5  | 946 | T-Shirt Red | $10 
3  | 5  | 946 | T-Shirt Red | $10 
4  | 5  | 946 | T-Shirt Red | $10 
5  | 5  | 946 | T-Shirt Red | $10 
1  | 3  | 456 | T-Shirt Black | $12 
2  | 3  | 456 | T-Shirt Black | $12 
3  | 3  | 456 | T-Shirt Black | $12 
1  | 2  | 489 | T-Shirt Blue | $11.50 
2  | 2  | 489 | T-Shirt Blue | $11.50 

我做了這個代碼,但我不知道如何使它發揮作用。

var data = [[5,946,'T-Shirt Red',10],[3,456,'T-Shirt Black',12],[2,489,'T-Shirt Blue',11.50]]; 
 
var items = []; 
 
var i, j; 
 

 
for(i in data){ 
 
    for (j = 1; j <= data[i][0]; j++) { 
 
    items.push([j,data[i]]); 
 
    } 
 
} 
 

 
console.log(items);

回答

1

在現代瀏覽器,這是一個簡單的變化

items.push([j, ...data[i]]); 

支持IE瀏覽器,你需要改變,要

items.push([j].concat(data[i])); 

var data = [[5,946,'T-Shirt Red',10],[3,456,'T-Shirt Black',12],[2,489,'T-Shirt Blue',11.50]]; 
 
var items = []; 
 
var i, j; 
 

 
for(i in data){ 
 
    for (j = 1; j <= data[i][0]; j++) { 
 
    items.push([j,...data[i]]); 
 
    } 
 
} 
 
items.forEach(item => console.log(item.join('\t| ')))

+0

謝謝。它爲我工作。 – mariohbrino