我有以下代码无效。
var array = [1, 3, 2]
var newArray = []
getNewArray() {
for (let i = 0; i < array.length; i++) {
for (let x = 0; x < array[i]; x++) {
this.newArray.push(array[i]);
}
}
console.log(this.newArray);
}
我想要实现的是使用数组中的数字循环次数。结果如下所示
(3) [{…}, {…}, {…}]
0:
count:(1) [1]
1:
count:(3) [1,2,3]
2:
count:(2) [1,2]
现在显示为
(4) [1, 2, 2, 1]
0: 1
1: 2
2: 2
3: 1
答案 0 :(得分:2)
由于您使用的是ES6功能,因此可以尝试.map
+ Array.from
的组合。
Array.map
并循环遍历每个项目。Array.from
创建一个新数组。mapper
函数以填充数组。
var array = [1, 3, 2];
var result = array.map((item) => Array.from({
length: item
}, (_, i) => i + 1));
console.log(result)
答案 1 :(得分:1)
试试这个
var array = [1, 3, 2]
var newArray = []
function getNewArray() {
for (let i = 0; i < array.length; i++) {
var tmp = [];
for (let x = 0; x < array[i]; x++) {
tmp.push(x+1);
}
this.newArray.push(tmp);
}
}
getNewArray();
console.log(this.newArray);
&#13;
答案 2 :(得分:0)
var array = [1, 3, 2];
var newArray = [];
function getNewArray() {
for (let i = 0; i < array.length; i++) {
var tempArray = [];
for (let x = 0; x < array[i]; x++) {
tempArray.push(array[i]);
}
newArray.push(tempArray);
}
console.log(this.newArray);
}
getNewArray();
&#13;
答案 3 :(得分:0)
使用一些阵列魔法
var array = [1, 3, 2]
var newArray = []
let getNewArray = () => {
newArray = array.map( x => Array(x).fill().map( (_,i) => i+1 ) )
console.log(newArray);
}
getNewArray()
&#13;