Javascript 识别对象循环中的最后一次迭代
我有一个这样的目标:Javascript 识别对象循环中的最后一次迭代,javascript,for-loop,Javascript,For Loop,我有一个这样的目标: var data = { "Something": true, "Something else": false, "Blah": false, "a fish": true }; 然后我循环这个对象,并将任何一行的键添加到字符串中 var stringContent = ""; for (var prop in data) { if (data[prop] === true) { stringContent += (
var data = {
"Something": true,
"Something else": false,
"Blah": false,
"a fish": true
};
然后我循环这个对象,并将任何一行的键添加到字符串中
var stringContent = "";
for (var prop in data) {
if (data[prop] === true) {
stringContent += (prop) += ', ';
}
}
因此,使用上面的方法,字符串将是
Something, a fish
但是,我想做的是识别添加到字符串中的最后一项。在最后一次迭代中,我想将单词和附加到字符串的前面。因此,上述情况最终应该得到解决
Something, and a fish
这可能吗?我想这就行了。你需要先去掉这些错误的元素,然后才能处理剩下的东西
let trues = Object.keys(data)
.filter(k => data[k])
return trues.slice(0,-1)
.join(',')
+ ', and ' + trues.slice(-1)[0]
我想这就行了。你需要先去掉这些错误的元素,然后才能处理剩下的东西
let trues = Object.keys(data)
.filter(k => data[k])
return trues.slice(0,-1)
.join(',')
+ ', and ' + trues.slice(-1)[0]
也可以这样做
var inputstr = "Something, a fish";
var values = inputstr.split(',');
var last =" and " + values[values.length - 1];
var lastIndex = str.lastIndexOf(',');
str = str.substring(0, lastIndex);
var finalstr= str + last;
也可以这样做
var inputstr = "Something, a fish";
var values = inputstr.split(',');
var last =" and " + values[values.length - 1];
var lastIndex = str.lastIndexOf(',');
str = str.substring(0, lastIndex);
var finalstr= str + last;
在讨论对象属性时,“最后添加”没有多大意义;他们没有秩序的概念。您可能需要考虑维护订单的并行结构。除非你只是说“last”是“在last上迭代的东西”,这看起来很简单。那么用数组来代替呢?这会涉及很多变化吗?没有线索,这取决于实际需要改变多少东西。“最后添加”在讨论对象属性时没有多大意义;他们没有秩序的概念。您可能需要考虑维护订单的并行结构。除非你只是说“last”是“在last上迭代的东西”,这看起来很简单。那么用数组来代替呢?这会涉及很多变化吗?没有线索,取决于实际需要改变多少东西。