【发布时间】:2020-12-31 15:13:07
【问题描述】:
我有 2 个问题,如何在数组中获取值而不是值,以及如何使这段代码更短且具有声明性。
arr = [16, 4, 11, 20, 2]
arrP = [7, 4, 11, 3, 41]
arrTest = [2, 4, 0, 100, 4, 7, 2602, 36]
function findOutlier(arr) {
const isPair = (num) => num % 2 === 0
countEven = 0
countOdd = 0
arr1 = []
arr2 = []
const result = arr.filter((ele, i) => {
if (isPair(ele)) {
countEven++
arr1.push(ele)
} else {
countOdd++
arr2.push(ele)
}
})
return countEven > countOdd ? arr2 : arr1
}
console.log(findOutlier(arrTest))
【问题讨论】:
-
你能澄清你想要做什么吗?我很难理解你在寻找什么结果。
-
您是否尝试将数组拆分为
even数组和odd数组,然后返回较长的数组? -
三元不是倒过来的吗?预期的输出是什么?
-
当奇数和偶数都不是一个时,函数应该返回什么,例如 [1, 3, 2, 4, 6]?标题似乎还要求输出字符串(“偶数”、“奇数”),但这不是您的代码正在做的事情……您能澄清一下吗?
-
是否只有一个元素与其他元素不同?
标签: javascript arrays outliers declarative