javascript - 从 Array.filter 内部返回条件 if

标签 javascript arrays

我试图从 Array.filter 方法中返回满足特定条件的项目的索引,但我仍然不断获取实际值数组而不是 我想要的值的索引。

示例:

var seq = [3, 4, 1, 2, 1];

seq.filter((curr, index) => {
  if (seq[index + 1] < seq[index]) {
    return index;
  }
});

// returns [4, 2]
// want to return [1, 3] (the indexes of 4 & 2)

我可以使用更有效的方法吗?我试图避免使用 for 循环。谢谢。

最佳答案

您可以在此处使用reduce

var seq = [3, 4, 1, 2, 1];

var result = seq.reduce((ar, curr, index) => {
  if (seq[index + 1] < seq[index]) ar.push(index);
  return ar;
}, []);

console.log(result)

关于javascript - 从 Array.filter 内部返回条件 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37598404/

相关文章:

javascript - 单击另一个按钮重置切换

javascript - Polymer - dom-repeat 的起始索引

php - 显示数组中的 mysql 列名及其数据

javascript - 通过AJAX上传的二进制数据保存在PHP服务器上

javascript - 当参数之一未定义时如何绕过变量的设置值

javascript - javascript中通过指针识别函数

c - 你好这个程序用于计算数组中的最小值和最大值

html - 如何垂直填充表格数据?

javascript - Jquery 获取公共(public)父级中输入元素值的数组

javascript - v6 : React-table multiple selection issue