需要解释基本的JavaScript代码

时间:2018-04-09 18:33:04

标签: javascript

我是JavaScript新手,我尝试了解一些基本代码。

我需要解释此代码中发生的事情:

circles = d3.range(numDisks).map(function(i) {
      return {
        index: i,
        x: Math.round(Math.random() * (width - radius * 2) + radius),
        y: Math.round(Math.random() * (height - radius * 2) + radius)
      };
    });

我不需要解释数学轮/随机等。

我需要了解构建的数据结构以及如何从此数据结构中删除元素?不是空的 - 它们可以用移位或其他方式完全删除。

谢谢你

1 个答案:

答案 0 :(得分:3)

创建的数据结构只是一个对象数组。从d3.range函数开始,该函数返回一个对象数组,然后使用数组映射运算符将其映射到新的对象数组

当地图变换原始数组中的所有对象时,您无法删除数组地图运算符中的项目,您需要在地图之前或之后使用删除逻辑添加过滤器运算符。

circles = d3.range(numDisks).map(function(i) {
  return {
    index: i,
    x: Math.round(Math.random() * (width - radius * 2) + radius),
    y: Math.round(Math.random() * (height - radius * 2) + radius)
  };
}).filter(i => i.x !== 0); // this filter removes items where their x value = 0