所以我有一个对象(编辑:最初称它为“哈希”)

newHash =
{item1: "spam",
item2: "everything"
}


我只想返回“垃圾邮件”和“所有内容”。

像这样编写for循环似乎不起作用:

for (var x in newHash) {return newHash[x].value}


谢谢!

编辑:按照流行的约定,将“哈希”一词替换为“对象”。

最佳答案

关于您的问题的标题,我想您想这样做:

var newHash = {
    item1: "spam",
    item2: "everything"
};
newHash.item1; // "spam"
newHash['item1']; // "spam"
newHash.item2; // "everything"
newHash['item2']; // "everything"


然后,如果要获取所有值,则需要将它们存储到列表中:

var list = [];
for (var key in newHash) {
    list.push(newHash[key]);
}
list; // ["spam", "everything"]
list.join(); // "spam,everything"


由于您的密钥是基于相同的模式,因此您也可以这样:

var list = [];
for (var i = 1; i <= 2; i++) {
    list.push(newHash['item' + i]);
}

10-04 22:56