如何获得类似数组中的最高键:
foo[0] == undefined
foo[1] == "bar"
foo[2] == undefined
foo[3] == undefined
foo[4] == "bar"
foo.length
返回2,所以如果我迭代foo.length
次,我将永远不会得到最后一个值。
或者考虑到未定义的值,有没有办法计算数组?
答案 0 :(得分:3)
我不确定您的代码无法正常工作,.length
在类似的数组中var foo = [];
foo[1] = "bar";
foo[4] = "bar";
//grab existing indexes that have values assigned
var indexes = foo.map(function(val, idx) { return idx; });
//get the last one, this + 1 is your real length
var realLength = indexes[indexes.length - 1] + 1;
console.log("Real length: ", realLength);
//iterate using for loop
for(var i=0; i<realLength; i++) {
var val = foo[i];
console.log(i, val);
}
在我的示例here中正确显示了5
但是,如果您没有在特定索引上设置任何值,则可以执行this:
opacity: 1;
答案 1 :(得分:1)
最高关键
var index = foo.lastIndexOf(foo.slice(-1)[0]);