javascript - 我应该如何实现一个函数来查找数组的非真实元素的索引?

标签 javascript arrays indexing boolean ecmascript-5

我有一个名为 uncompletedSteps() 的函数:

function uncompletedSteps(completedSteps) {
    // completedSteps is an array
}

此函数应检查 completedSteps 并返回不等于 true 的所有 completedSteps 元素的索引:

if (completedSteps[i] === true) {
    // add to return list
}

换句话说,如果有:

var completedSteps = [
    true,
    null,
    true
];

然后 uncompletedSteps() 应该返回 [0, 2]

这个 uncompletedSteps() 应该是什么样子的? (ECMAScript5 没问题。)

最佳答案

使用reduce:

function uncompletedSteps(steps){
   return steps.reduce(function(memo, entry, i) { 
      return memo.concat(entry ? i : []);
   }, [])
}

使用forEach:

function uncompletedSteps(steps){
   var uncompleted = [];
   steps.forEach(function(entry,i) { 
      if(entry) uncompleted.push(i); 
   })
   return uncompleted;
}

使用mapfilter

function uncompletedSteps(steps){
   return steps.map(function(entry, i) {
      return entry ? i : null;
   }).filter(function(entry) {
      return entry != null;
   });
}

关于javascript - 我应该如何实现一个函数来查找数组的非真实元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331982/

相关文章:

javascript - jQuery优化多次悬停代码

javascript - 使用 value within 从 JSON 对象获取数据

javascript - Ipad safari 浏览器点按时禁用默认功能

javascript - 如何在不使用 try/catch(err) 的情况下处理 indexOf 返回 'null' ?

c - C 中的二维数组和图像平滑

c - 指针运算和数组 : what's really legal?

sql - 仅在一张表上重建 SQL 索引

MySQL 索引 - 根据此表和查询的最佳实践是什么

javascript - 将类添加到 HTML 标记 (<p>) 返回错误

javascript - 单击上方的行时插入表格行