【发布时间】:2018-10-07 09:58:15
【问题描述】:
我正在尝试返回
true,如果项目在数组的后半部分内
false,如果项目在前半部分内
false,如果是奇数数组的中间项。
我有一些工作代码来测试这个,但是我坚持要确保奇数数组的中间项没有被测试。
function isItemPastHalf(array, item) {
var halfWayThough = Math.floor(array.length / 2)
var arrayFirstHalf = array.slice(0, halfWayThough);
var arraySecondHalf = array.slice(halfWayThough, array.length);
return arraySecondHalf.includes(item);
}
var array = [1, 2, 3];
console.log(isItemPastHalf(array, 2));
到目前为止,此代码不适用于 array = [1, 2, 3] item = 2,因为 2 是奇数的中间值,它应该返回 false。针对这个特定问题的其他测试包括偶数长度数组。有人对我可以使用什么有任何建议吗?
【问题讨论】:
-
为什么不使用 indexOf 并与数组长度进行比较?无需实际拆分数组。
-
不需要对数组进行切片,可以使用Array indexOf方法判断元素是否存在于后半部分。操作索引geeksforgeeks.org/javascript-array-indexof的详细信息可以参考以下链接
-
非常感谢,我已经成功地使用 indexOf 和 Math.ceil 将我的代码缩减了很多,它可以工作了 :)
标签: javascript arrays