javascript - 为什么在这种情况下默认数组发生了变异?
问题描述
let points = [{x:1,y:2},{x:2,y:2}];
let centroidsPoints = [1,2].map(() => []);
console.log(centroidsPoints); // => [[],[]]
let centroidsPointsCopy = [...centroidsPoints]; //copy array
points.forEach(point => {
centroidsPointsCopy[0].push(point);
});
console.log(centroidsPointsCopy); // => [[{x:1,y:2},{x:2,y:2}],[]]
console.log(centroidsPoints); // => [[{x:1,y:2},{x:2,y:2}],[]] but expected [[],[]]
为什么我没有得到预期的行为,因为我复制了默认数组
[...centroidPoints]
抱歉,如果重复,我只找到“array1=array2”副本的答案;
解决方案
推荐阅读
- python - 如何修复不推荐使用的 plotly.plotly 模块
- laravel - 我如何在 Laravel 中显示医生姓名
- xml - XSLT 删除元素但不删除其子元素?
- c - JPEG 类别编码按位运算
- python - Flask template inheritance with CSS styles
- c# - 使用 WebView2 编辑 HTTP 请求标头
- azure-devops - Azure devops Yaml:如何设置循环代理池名称
- git - 如何从 git 历史记录中删除已删除的文件 - 包括 rev-list
- c# - 变量数据在使用过程中丢失
- clojure - 在函数中包装 Datascript 查询?