为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人8056858 2022-10-08 15:10:01
有没有办法在不使用任何方法的情况下对此进行编码?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);
查看完整描述

4 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以采用单独的索引并分配值。


const func = (a, n) => {

    let array = [],

        i = 0;


    while (n--) for (const v of a) array[i++] = v;


    return array;

};


console.log(...func([1, 2, 3, 4], 2));


查看完整回答
反对 回复 2022-10-08
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您可以使用扩展运算符为循环的每次迭代创建一个新数组。这意味着您的arr变量不能是常量,因为它会被新数组覆盖。


const func = (a, n) => {


  let arr = [];


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


    arr = [...arr, ...a];


  }


  console.log(arr);


};


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


查看完整回答
反对 回复 2022-10-08
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

好吧,您可以使用两个循环并直接分配i数组项。


const func = (a, n) => {


  const arr = [];


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

    for (let j = 0; j < a.length; j++) {

      arr[i * a.length + j] = a[j]

    }

  }


  console.log(arr);


};


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


查看完整回答
反对 回复 2022-10-08
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

那 ?


const func=(a, n)=>

  {

  const arr = []

  let   p = 0

  for (let i=0;i<n;++i) for(let v of a) arr[p++] = v

  console.log(JSON.stringify(arr));

  }


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


查看完整回答
反对 回复 2022-10-08
  • 4 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信