使用该数组中的值填充数组

时间:2018-05-24 10:44:00

标签: javascript

例如我有

this.clients.clientTypes = [10,20,30,40]

this.clients.clientInputs.length具有所需的长度,让我们说这个例子8(这总是与类型成比例)

如何填充数组this.clients.clientTypes以便我获得[10,20,30,40,10,20,30,40]

this.clients.clientTypes = Array(this.clients.clientInputs.length).fill(??)

10 个答案:

答案 0 :(得分:0)

基于克里希纳,我做到了这一点。

for(let i = 0; i <= (this.clients.clientInputs.length - this.clients.clientTypes.length); i++) {
  this.clients.clientTypes.push(this.clients.clientTypes[i]);
}

有更好的解决方案吗?

答案 1 :(得分:0)

生成给定长度的数组,然后使用array#from的回调填充初始数组中的值。

&#13;
&#13;
const arr = [10, 20, 30, 40],
      newArr = Array.from({length: 8}, (v, i) => arr[i % arr.length]);
console.log(newArr);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用所需长度(Array.from)生成一个数组,并使用映射的余数运算符映射(Array.from的第二个参数)。

&#13;
&#13;
var array = [10, 20, 30, 40],
    length = 8,
    result = Array.from({ length }, (_, i) => array[i % array.length]);

console.log(result);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

请告诉我这是你想要的。

&#13;
&#13;
JavaSparkContext javaSparkContext = createSparkContext();

Broadcast<BroadcastContext> broadcastContext = getBroadcastContext(javaSparkContext);

JavaStreamingContext javaStreamingContext = JavaStreamingContext.getOrCreate(sparkCheckPointDir,
                () -> processor.create(sparkCheckPointDir, javaSparkContext));
&#13;
&#13;
&#13;

答案 4 :(得分:0)

for (let i = 0, len = this.clients.clientTypes; i < this.clients.clientInputs.length; i++) {
  this.clients.clientTypes.push(types[i%len])
}

答案 5 :(得分:0)

this.clients.clientTypes.length = 0;
this.clients.clientTypes = this.clients.clientInputs;

试试这个。

答案 6 :(得分:0)

您可以使用以下逻辑来实现此目的:

let clientTypes = [10, 20, 30, 40];
let clientInputsLength = 10;
let result = []
for(let i = 0; i < clientInputsLength; i++) {
  result.push(clientTypes[i%clientTypes.length])
}

console.log(result);

答案 7 :(得分:0)

只需使用以下功能并在需要的地方调用

const push = (arr, length) => {
  if (arr.length === length) return arr;
  let result = [];
  for (let i = 1; i <= (length/arr.length); i++){
    result.push(...arr);
  }
  return result;
}

答案 8 :(得分:-1)

为什么不简单地使用JQuery function:$ .merge

this.clients.clientTypes = [10,20,30,40];
$.merge(this.clients.clientTypes,this.clients.clientTypes);
console.log(this.clients.clientTypes);

答案 9 :(得分:-1)

您可以使用Array.reduce

var a = [1, 2, 3, 4];

console.log(a.reduce(function(result, current) {
  result.push(current);
  return result;
}, a));

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce