js如何把数组里面的某个元素或者对象复制多次

例如:

const arr [{"a": "1", "b": "2"}]

点击一个数字为2或者3或者更的大的数字的按钮,那么这个arr就有两份或者三份或者更多份{"a": "1", "b": "2"}这样的数据

阅读 6.5k
3 个回答
// 重复填充当前元素
let arr = [{ a: 1, b: 2 }];
const copyArr = nums => Array(nums).fill(arr[0])

// fill的参数为引用类型,会导致都执行都一个引用类型
arr = copyArr(2)
arr[0].a = 'test' // 所有的a都变为test了
console.log(arr)
// 这个方法只需要简单的处理一下
arr = JSON.parse(JSON.stringify(arr))

在提供一个方法,在生成新数组时,就对引用类型深拷贝以下

function copyArr(nums) {
  let n = 0
  let newArr = []
  while(n < nums) {
    // 因为是引用类型,所以需要深拷贝
    let copyItem = arr.map(item => JSON.parse(JSON.stringify(item)))
    newArr.push(copyItem[0])
    n++
  }
  return newArr
}


arr = copyArr(2)
arr[0].a = 'test' // 只有第0个的a被改变了,其余的不会改变

不确定理解的对不对:

let arr = [{ a: 1, b: 2 }];
const division = number => Array.from({ length: number }, () => arr[0]);

arr = division(3);
function(len){
let arr = [{"a": "1", "b": "2"}];
let result = [];
for(let index= 0 ;index < len; index++){
    result.push([...arr])
};
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题