Javascript 从数组中过滤出奇数,然后返回索引位置
我有一个相同单词的数组,但是数组中的一个单词拼写向后。函数返回“错误”字的索引位置。下面的代码工作得非常好,但相当长 我想知道是否有一种方法可以缩短代码并且仍然让它返回相同的值Javascript 从数组中过滤出奇数,然后返回索引位置,javascript,arrays,function,filter,Javascript,Arrays,Function,Filter,我有一个相同单词的数组,但是数组中的一个单词拼写向后。函数返回“错误”字的索引位置。下面的代码工作得非常好,但相当长 我想知道是否有一种方法可以缩短代码并且仍然让它返回相同的值 function oddOneOut(arr) { let word = '' if (arr[0] === arr[1]) { word = arr[0] } if (arr[1] === arr[2]) { word = arr[1] } if (arr[2] === ar
function oddOneOut(arr) {
let word = ''
if (arr[0] === arr[1]) {
word = arr[0]
}
if (arr[1] === arr[2]) {
word = arr[1]
}
if (arr[2] === arr[3]) {
word = arr[2]
}
function wrong(element) {
return element !== word
}
return arr.findIndex(wrong)
}
console.log(oddOneOut(["sword", "sword", "sword", "sword", "drows", "sword"]))
//returns 4
我想你可以用三元运算符来表示你的ifs和一个内置的数组函数来查找你的奇数字 以下是一个例子:
function oddOneOut(arr) {
let word = arr[0] === arr[1] ? arr[0] : arr[1] === arr[2] ? arr[1] : arr[0];
return arr.findIndex(r => r !== word);
}
console.log(oddOneOut(["sword", "drows", "sword", "sword", "sword", "sword"]));
我希望这对您有用。我认为您可以使用ifs的三元运算符和内置的数组函数来查找奇数字 以下是一个例子:
function oddOneOut(arr) {
let word = arr[0] === arr[1] ? arr[0] : arr[1] === arr[2] ? arr[1] : arr[0];
return arr.findIndex(r => r !== word);
}
console.log(oddOneOut(["sword", "drows", "sword", "sword", "sword", "sword"]));
我希望这对您有用。假设只有一个项目是不同的,您可以将每个项目与之前和之后的项目进行检查,如果每个项目不同,则返回该索引
for(let i = 0; i < array.length; i++){
let previous = i - 1;
let next = i + 1;
if(i == array.length - 1) {
next = 0;
}
if(array[i] != array[previous] && array[i] != array[next]) {
return i;
}
}
for(设i=0;i
假设只有一个项目是不同的,您可以将每个项目与之前和之后的项目进行对比,如果每个项目不同,则返回该索引
for(let i = 0; i < array.length; i++){
let previous = i - 1;
let next = i + 1;
if(i == array.length - 1) {
next = 0;
}
if(array[i] != array[previous] && array[i] != array[next]) {
return i;
}
}
for(设i=0;i
欢迎来到StackOverflow!乍一看,我想说您的oddOneOut()
函数可以通过使用for
循环来改进——目前它看起来相当难编码。欢迎使用StackOverflow!乍一看,我想说您的oddOneOut()
函数可以通过使用for
循环来改进——目前它看起来相当难编码。