2017-10-06 81 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