我正在尝试使用最多的数组来填充数组' n'值使用其现有的4个值。我希望用一种反向和向前的模式来填充它,直到它达到“ ”的能力。值。
例如,使用我的数组:
var array = [a, b, c, d];
我希望生成的数组遵循以下模式:
array = [a, b, c, d,
c, b, a, b,
c, d, c, b,
a, b, c, d...(continues this pattern)]
答案 0 :(得分:0)
concat() , slice() , reverse() 会让您前进。
这会重复模式100次:
var array = ['a', 'b', 'c', 'd'];
for(var i = 0 ; i < 100 ; i++) {
array = array.concat(array.slice(0,3).reverse());
array = array.concat(array.slice(1,4));
}
document.body.innerHTML= array.join(' ');
&#13;
答案 1 :(得分:0)
var array = ['a', 'b', 'c', 'd'];
var step = 1;
var n = 10;
var length = array.length;
var result = [];
var i = 0, j = 0;
while(i !== n) {
result.push(array[j]);
j += step;
if(j === 0 || j === (length - 1)) {
step *= -1;
}
++i;
}
console.log(result);
答案 2 :(得分:0)
var array = ['a','b','c','d'];
var requiredLength = 20;
// first add the descending tail (thanks @RickHitchcock)
var sequence = array.concat(array.slice(0,array.length-1).reverse());
// now we can sample until done
var newArray = [];
for(var i = 0; i < requiredLength; ++i) {
newArray.push(sequence[i % requiredLength]);
}
但是,我怀疑d3可以进行回调,在这种情况下,您只需提供一个从索引生成答案的函数。