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

数组与由该数组中的元素分配的变量之间的奇怪依赖关系

数组与由该数组中的元素分配的变量之间的奇怪依赖关系

慕丝7291255 2022-09-16 21:12:41
更改从数组的元素赋值的变量时,数组中的特定元素将随变量而变化。但是,代码中没有要更改的数组。在代码中,数组是一个对象数组,变量在函数 randomCentroid(质心)内声明和赋值,该函数在初始化质心中调用。该代码用于生成有关 k 均值聚类的随机质心,因此代码://Return random centroid points with coloringlet randomCentroid = (fill) => {  let r = Math.floor(Math.random()*points.length);  let centroid = points[r];  //points.splice(r, 1);  centroid.fill = fill;  return centroid;}//Gives distinct coloring to all centroid pointslet initializeCentroids = (num) => {  let allCentroids = [];  for (let i = 0; i < num; i++) {    let color = colors(i);    let centroid = randomCentroid(color);    centroid.id = 'centroid' + '-' + i;    allCentroids.push(centroid);  }  return allCentroids;}//same for const.let points = [{}, {}, {}, {}, {}],  colors = d3.scaleOrdinal(d3.schemeCategory10);initializeCentroids(3);console.log(points);安慰:索引.js:29(5) [{...}, {...}, {...}, {...}, {...}]0: {填充: “#2ca02c”, id: “质心-2”}1: {}2: {填充: “#ff7f0e”, id: “质心-1”}3: {填充: “#1f77b4”, id: “质心-0”}4: {}长度: 5原型: 数组(0)如何删除由数组分配的对象组成的变量与数组之间的依赖关系?
查看完整描述

1 回答

?
料青山看我应如是

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

这部分:

let centroid = points[r]

正在获取对点数组中对象的引用

更改时,也会更改数组中的对象。centriod


查看完整回答
反对 回复 2022-09-16
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

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