我有一个简单的问题。我有这样的JS数组:
data[-5]=[...];
data[-2]=[...];
data[-1]=[...];
data[4]=[...];
data[6]=[...];
data[7]=[...];
如何自动获取最小(数据[-5])和最大(数据[7])元素?
答案 0 :(得分:5)
负索引不是实际索引。他们不会一直工作。它们就像对象的任何其他属性一样。
但是,您可以通过遍历可枚举属性(对于数组不好,但仍然如此)并向数组添加数字属性来执行您想要的操作。
var idxs = Object.keys(arr).filter(isFinite); // just take the Number properties
var min = Math.min.apply(Math, idxs),
max = Math.max.apply(Math, idxs);
答案 1 :(得分:2)
没有循环的简短:
var keys = Object.keys(data);
var sorted = keys.sort(function(a, b){return a-b});
var min = data[sorted[0]];
var max = data[sorted[sorted.length-1]];