这是我目前拥有的:
var myArray = [];
myArray[15] = 2;
myArray[6323] = 1;
myArray[349022] = 3;
myArray = myArray.filter(function(i,v,a){return ! (typeof v == 'undefined')});
myArray = myArray.sort(function(a,b){return (a - b)});
当我在“过滤器”函数之后使用 console.log() allocationOrder 时,我得到了我期望的值,但索引没有得到维护。我怎样才能维护索引并删除未定义的值(由于分散了索引)?请记住,之后我需要按值对数组进行排序(这就是为什么我避免将对象作为解决方案的原因)。
最佳答案
如果您使用过滤器,you could supply it with an extra callback for the index并将其分配到返回的对象中:
source = source.filter((instance, index) => {
instance.originalIndex = index;
});
我的用途是为汽车添加选项,有一个可过滤的选项列表,每个选项只能应用于汽车一次(这意味着它需要从可用选项数组中删除以及过滤数组)。希望对您有所帮助!
关于javascript - 如何过滤 Javascript 数组并维护它的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536993/