一段时间以来,我一直在试图解决这个问题,但我还是一片空白。这是我到目前为止的内容:
var repeatNumbers = function(data) {
var repeated = [];
for ( var x = 0; x < data.length; x++){
var unit = data[x][0]
var quant = data[x][1]
for(var i = quant; i > 0; i--){
repeated.push(unit);
repeated.join(',');
}
return repeated;
}
};
console.log(repeatNumbers([1, 10]));
基本上,我试图根据第二个值重复数组的第一个数字。任何见解将不胜感激,谢谢! :)
答案 0 :(得分:0)
如果只有两个数字,则不需要遍历数组,其中第一个数字(索引为0)是您要重复的数字,第二个数字是您要重复的次数该数字(索引1)。
一旦您希望重复该次数,就可以简单地使用for
循环将该次数输入该次数到repeated
数组中。
请参见下面的工作示例(阅读代码注释以获取进一步的解释):
var repeatNumbers = function(data) {
var repeated = []
var toRepeat = data[0]; // get the first number in the array
var times = data[1]; // get the second number in the array
// loop the number of times you want to repeat the number:
for(var i = 0; i < times; i++) {
repeated.push(toRepeat); // push the number you wish to repeat into the repeated array
}
return repeated.join(); // return the joined array (as a string - separated by commas)
}
console.log(repeatNumbers([1, 10]));
答案 1 :(得分:0)
如果我正确理解了您的问题,则您希望函数repeatNumbers()
返回一个数组,其中数组中的第一个元素被传递的数组中的第二个元素复制。
要实现这一目标,您可以执行以下操作:
var repeatNumbers = function(data) {
// Extract the "value" to be repeated, and the "repeated" value
// that will control the number of "value" items in result array
var value = data[0];
var repeated = data[1];
var result = []
// Loop over repeated range, and push value into the result array
for (var i = 0; i < repeated; i++) {
result.push(value);
}
// Result result array
return result;
};
console.log(repeatNumbers([1, 10]));
或者,如果您不需要支持IE,则更简洁的方法是:
var repeatNumbers = function(data) {
var value = data[0];
var repeated = data[1];
return (new Array(repeated).fill(value));
};
console.log(repeatNumbers([1, 10]));