识别Object循环中的最后一次迭代

时间:2016-02-09 16:32:22

标签: javascript for-loop

我有一个像这样的对象:

var data = {
    "Something": true,
    "Something else": false,
    "Blah": false,
    "a fish": true
};

然后我循环这个Object,并将任何行的键添加到String

var stringContent = "";
for (var prop in data) {
    if (data[prop] === true) {
        stringContent += (prop) += ', ';
    }
}

因此,如上所述,String将是

Something, a fish

但我想要做的是识别添加到String的最后一项。对于最后一次迭代,我想将单词And附加到字符串的前面。所以上面应该最终成为

Something, and a fish

这可能吗?

2 个答案:

答案 0 :(得分:3)

我认为这样做了。你需要首先摆脱假元素,然后你可以玩剩下的东西

let trues = Object.keys(data)
.filter(k => data[k])

return trues.slice(0,-1)
.join(',')
+ ', and ' + trues.slice(-1)[0]

答案 1 :(得分:1)

也可以这样做。

UIViewRoot