javascript - 如何过滤 Javascript 数组并维护它的索引?

标签 javascript

这是我目前拥有的:

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/

相关文章:

javascript - 如果多次运行工厂,JavaScript 工厂中的数据将被覆盖

Javascript 幻灯片褪色问题 - 不无缝

javascript - 轻量级单向数据绑定(bind)的最佳解决方案

javascript - 如何在 Vue 组件中每页只运行一次代码(当该页面上存在多个相同组件时)?

javascript - 在用户做了正确的事情之后,有没有办法摆脱我在 javascript 中创建的错误消息?

javascript:File 对象是不可变的吗?

javascript - Fastify 路由不适用于特定的 url

javascript - 如何使用 linqjs 获取具有特定 id 的书名

javascript - Angularjs:如何使 ui-select 只有一种模型绑定(bind)方式?

php - Magento - 半分页