javascript - 在 JavaScript 中查找数组中正元素的索引
问题描述
我想使用 JS 中的纯函数返回具有正元素的数组的索引数组。前任:
pos([1,-4,0,5,2])
>>[0,2,3,4]
所以,我尝试了:
arr.map(function (ele){
return arr.findIndex(ele => ele > 0);
})
But my output is :[1,1,1,1]
有人可以告诉我有什么问题吗?我相信我的地图功能是正确的,但 findIndex() 有问题。(请不要告诉我代码,因为这是我的作业问题。只需要提示。)
解决方案
map()
不太正确,因为原始数组中的每个元素都没有相应的输出。reduce()
在这种情况下可能是您想要的:
function pos(arr){
return arr.reduce((ret_arr, number, index) => {
if (number >= 0) ret_arr.push(index)
return ret_arr
}, [])
}
console.log(pos([1,-4,0,5,2]))
推荐阅读
- javascript - 如何使用功能性 vanilla JS(非 React)组件从 html 元素的 onclick 属性调用范围内函数?
- java - Firebase - 代码 10 错误谷歌登录。我也有相同项目的朋友无法登录,但我可以
- python - 为什么终端会终止我切换到 Miniforge 的命令?
- python - Python避免在熊猫数据框中除以零
- typescript - 重新连接在用 typescript 编写的 react-native 中引发错误
- subclipse - 如何在 2021 年使用 Homebrew 安装 Subversion JavaHL 库?
- maven - 找不到工件 com.wavefront:wavefront-spring-boot-bom:pom:2.1.1-SNAPSHOT
- gstreamer - 减少 gstreamer 管道延迟
- sql - 识别列是否按降序排列
- c# - '无法加载类型'System.Diagnostics.CodeAnalysis.SuppressMessageAttribute'