gpt4 book ai didi

javascript - 在 Javascript 中向数组添加属性——糟糕的主意?

转载 作者:行者123 更新时间:2023-11-28 01:31:44 24 4
gpt4 key购买 nike

我正在使用 D3 做很多事情,所以我有很多值数组,并且为了使代码更清晰,而不是将值数组放置在另一个具有元信息(如名称、颜色、无论如何)我只是将该元信息设置为数组的属性。它使代码更加清晰,并且更容易对相关数据进行 d3 操作/其他操作。

有什么事情会伤害我吗? Object.keys 无法正常工作,并且在控制台中查看代码会稍微困难一些,但我可以解决这个问题。

代码示例:

而不是

var a = {
name = "something",
foo = "bar"
values = [{x: 1, y:2}, , , ]
};

正在做

var a = [{x:1, y:2}, , , , ];
a.name = "something";
a.foo = "bar"

最佳答案

在编写代码时,我喜欢遵循“最少惊喜”的原则。看到自定义属性添加到数组中我会感到有点惊讶,因为我并没有真正期望它。您必须问自己:“这些属性真的属于数组吗?”。我认为答案是“不”。您拥有的数据只是与数组一起使用。因此我喜欢你的声明式方法:

var data = {
name = "something",
foo = "bar"
values = [{x: 1, y:2}]
}

这更容易阅读,并且当您执行类似 data.name 的操作时更有意义。 , data.foo ,和data.values 。在这种情况下,对数据的访问非常统一。但是,如果您使用其他方法,您将访问 data.foodata.name ,但是data本身就是为了值(value)观。我不希望数组具有额外的属性,因此虽然我会理解代码,但这是我真正不需要的额外认知负担。

因此,从正在阅读代码的人(包括您!)的 Angular 来看,并考虑到 future 的维护和理解,我会选择第一个选项。

关于javascript - 在 Javascript 中向数组添加属性——糟糕的主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22048790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com