Javascript 在多个对象属性字段上存储单个元素的属性

Javascript 在多个对象属性字段上存储单个元素的属性,javascript,arrays,object,Javascript,Arrays,Object,将应用于单个元素的属性分散到多个对象属性中的多个数组上是否被认为是不好的做法。 比如 我最初使用嵌入函数或闭包的数组,但得到了很多负面反馈。到目前为止,我对使用图书馆也不感兴趣。现在尝试使用vanilla.js。不要将每个属性都放在单独的数组中,而是创建一个对象数组: var properties = [ { name: 'fish', color: 'blue', link: 'link1' }, { name: 'car', col

将应用于单个元素的属性分散到多个对象属性中的多个数组上是否被认为是不好的做法。
比如


我最初使用嵌入函数或闭包的数组,但得到了很多负面反馈。到目前为止,我对使用图书馆也不感兴趣。现在尝试使用vanilla.js。

不要将每个属性都放在单独的数组中,而是创建一个对象数组:

var properties = [
    { name: 'fish',
      color: 'blue',
      link: 'link1'
    },
    { name: 'car',
      color: 'green',
      link: 'link2'
    }
    ...
];
然后您就可以访问
Element=properties[i]
,它将在一个地方拥有您想要的所有属性

为了避免重复所有属性名称,您可以编写一个函数:

function makeProp (name, color, link) {
    return { name: name, color: color, link: link };
}
然后,您的数组看起来像:

var properties = [
    makeProp('fish', 'blue', 'link1'),
    makeProp('car', 'green', 'link2'),
    ...
];

你能举个更具体的例子吗?你想解决什么具体问题?事实上,如果没有上下文,这几乎是完全基于观点的,因此离题了。我同意不清楚你在解决什么问题。我觉得奇怪的是,这些数字索引的数组似乎是不相关的。在应用程序上下文中如何使用它们?人们怎么知道
属性[2]
包含
平面
?我在这里没有看到有意义的键值或索引系统?是的,这将是一种不好的做法,主要是因为这两者都不能很好地伸缩,并且在被不熟悉它的人阅读时会令人困惑。很抱歉重复我在下面写的内容,但是对于1000+个元素?这似乎有很多重复的代码。无论你如何安排,你都必须在某处写下所有1000个元素。要么是一组每个有1000个元素的数组,要么是一个有1000个对象的数组。如果你把它作为单独的数组来做,你需要确保它们都保持同步。如果您跳过其中一个数组中的一个元素,那么之后的所有内容都将是错误的。就像许多无用的代码重复“name”、“color”、“etc”--只写一次property.name。我还认为,如果我需要对所有元素的相同属性进行排序,这可能会更快。你没有看到我的更新,它显示了如何避免重复它们吗?
var properties = [
    makeProp('fish', 'blue', 'link1'),
    makeProp('car', 'green', 'link2'),
    ...
];