javascript - 如何查找数组内的差异值并记录差异的索引
问题描述
祝大家新年快乐!
但是对不起我想问一个问题,我有一个这样的数组
[ 'even', 'even', 'odd', 'even', 'even' ]
我希望输出会说 3,因为数组内部的差异值是“奇数”并且它位于第三个索引中(索引从 1 开始)
而且,当问题变成
[ 'odd', 'even', 'odd', 'odd', 'odd' ]
输出将得到 2,因为数组内的差异值是“偶数”并且它位于第二个索引中
有没有人可以帮助我?
我尝试过使用 javaScript 方法映射、for 循环和其他,...但我不知道如何获取数组的差异值并从中打印索引
谢谢
解决方案
您可以findIndex
在主数组上使用并通过比较其索引和 lastIndex 来检查元素是否唯一
const findIndexOfUnique = (arr) => arr.findIndex(x => arr.indexOf(x) === arr.lastIndexOf(x)) + 1
console.log(findIndexOfUnique([ 'even', 'even', 'odd', 'even', 'even' ]))
标题:
indexOf
方法从头到尾寻找一个元素。并且lastIndexOf
从头到尾做同样的事情。因此,如果元素是唯一的,那么两者的结果将相同,否则它们将不同。
findIndex()
将函数作为参数并返回满足条件的第一个元素的索引。所以实际上我们是这么说的。查找与条件匹配的元素的第一个索引arr.indexOf(x) === arr.lastIndexOf(x)
。然后我们添加1
以获得所需的输出
推荐阅读
- ios - 如何扩展系统默认的 ButtonStyle 类
- opengl-es - getUniformLocation 返回 null
- html - 来自 Web 表单的响应在控制台上的空格后不会显示任何内容
- visual-studio - 在 c++ 中为 15 谜题找到序列 1、...、15 的随机排列
- graphql - 如何通过graphql模式从hasura graphql引擎导入关系?
- unity3d - Astar Pathfinding Project 将 AI 代理的 z 位置设置为 2D 项目中的错误值
- c - 如何在 2D 数组存储的 char 而不是 [posX] [posY] 值上执行 IF 语句
- django - 交易的django计算问题
- flutter - 错误:flutter/lib/ui/ui_dart_state.cc(199) 未处理的异常:空值检查运算符用于空值
- java - Eclipse RCP:如何使用 Workbench Site 键绑定服务注册 Jface 操作?