我有一个带有一堆属性的javascript对象.在此示例中,每个属性表示一件衣服,带有一个键,然后是一个数组值.
var clothes = {
CLO1: ["shirt", "cotton", "white"],
CLO2: ["tie", "silk", "red"],
CLO3: ["shoes", "leather", "black"]
};
Run Code Online (Sandbox Code Playgroud)
我想循环遍历每一件衣服并打印出每件衣服的颜色.我正试图找出最简洁的方法来做到这一点.像这样的东西 -
for (property in object) {
if (property[key]){
return (property[2])
} else { return "none";
}
Run Code Online (Sandbox Code Playgroud)
任何想法都会非常感激.我希望这是有道理的.谢谢!
看起来很好.数组有时是空的还是空的?删除额外退货声明的意见中的建议是一个很好的建议.
我注意到每个数组都有类似的结构.第一个元素是服装类型,第二个元素是材料,第三个元素是颜色.您可以使用对象而不是数组.使用对象的优点是它可以告诉您(和其他程序员)更多关于数据结构的信息.使用数组存储这些对象的集合:
var clothes = [
{ type: "shirt",
material: "cotton",
color: "white"
},
{ type: "belt",
material: "leather",
color: "none"
];
Run Code Online (Sandbox Code Playgroud)
此外,不是检查属性"颜色"是否存在,而是始终包含"颜色".如果不相关,请将"颜色"设置为"无".
打印颜色看起来像:
clothes.forEach(function(each) {
console.log(each.color);
});
Run Code Online (Sandbox Code Playgroud)
更新 我选择始终包含"颜色",因为它简化了程序代码.如果没有数据冗余,我必须检查在迭代属性时是否存在特定键.我通常选择简化代码,而不是数据.从哲学上讲,它类似于密集和稀疏数据表示之间的权衡.
还有一个语义原因总是包括颜色.如果一些衣服具有"大小"的属性,但其他人没有.如果我看的所有例子都没有"大小"怎么办?我不知道在我的程序代码中包含"大小".
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |