在没有 push() 的情况下将模式添加到数组

有没有办法在不使用任何方法的情况下对此进行编码?


a 是一个数组,n 是模式在新数组中重复的次数


const func = (a, n) => {


  const arr = [];


  for (let i = 0; i < n; i++) {


    arr.push(...a);


  }


  console.log(arr);


};


func([1, 2, 3, 4], 2);


慕码人8056858
浏览 107回答 4
4回答

精慕HU

您可以采用单独的索引并分配值。const func = (a, n) => {&nbsp; &nbsp; let array = [],&nbsp; &nbsp; &nbsp; &nbsp; i = 0;&nbsp; &nbsp; while (n--) for (const v of a) array[i++] = v;&nbsp; &nbsp; return array;};console.log(...func([1, 2, 3, 4], 2));

慕姐8265434

您可以使用扩展运算符为循环的每次迭代创建一个新数组。这意味着您的arr变量不能是常量,因为它会被新数组覆盖。const func = (a, n) => {&nbsp; let arr = [];&nbsp; for (let i = 0; i < n; i++) {&nbsp; &nbsp; arr = [...arr, ...a];&nbsp; }&nbsp; console.log(arr);};func([1, 2, 3, 4], 2);

眼眸繁星

好吧,您可以使用两个循环并直接分配i数组项。const func = (a, n) => {&nbsp; const arr = [];&nbsp; for (let i = 0; i < n; i++) {&nbsp; &nbsp; for (let j = 0; j < a.length; j++) {&nbsp; &nbsp; &nbsp; arr[i * a.length + j] = a[j]&nbsp; &nbsp; }&nbsp; }&nbsp; console.log(arr);};func([1, 2, 3, 4], 2);

白猪掌柜的

那 ?const func=(a, n)=>&nbsp; {&nbsp; const arr = []&nbsp; let&nbsp; &nbsp;p = 0&nbsp; for (let i=0;i<n;++i) for(let v of a) arr[p++] = v&nbsp; console.log(JSON.stringify(arr));&nbsp; }func([1, 2, 3, 4], 2);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript