【发布时间】:2020-12-14 02:33:17
【问题描述】:
我尝试在数组中找到数字 7 并返回 true
(不管是7、47 还是507)
数组:[17, 23, 9, 590]
我尝试使用arr.includes(7),但这只是返回数字7。
(所以在这种情况下它返回false,因为数组中没有7 - 只有17)
【问题讨论】:
标签: javascript arrays split find include
我尝试在数组中找到数字 7 并返回 true
(不管是7、47 还是507)
数组:[17, 23, 9, 590]
我尝试使用arr.includes(7),但这只是返回数字7。
(所以在这种情况下它返回false,因为数组中没有7 - 只有17)
【问题讨论】:
标签: javascript arrays split find include
问题是比较number === 7,你应该比较每个数字。
您可以使用函数Array.prototype.some 和函数String.prototype.includes 来检查特定的数字/字符。
这种方法在每个数字的数字上找到数字 7。
console.log([17, 23, 9, 590].some(n => String(n).includes(7)))
【讨论】:
你可以加入这些数字,看看是否包含7。
var data = [17, 23, 9, 590],
has7 = data.join('').includes(7);
console.log(has7);
【讨论】:
你不会将数字修改 10 然后寻找 7 吗?
const findByLeastSigFig = (arr, n) => arr.find(x => x % 10 === n);
console.log(findByLeastSigFig([17, 23, 9, 590], 7));
【讨论】:
假设 7 仅在最后一个位置有效,您可以使用除以 10 的其余部分
const elements = [7, 9, 17, 23, 57, 407, 590];
const result = elements.filter(element => element % 10 === 7)
console.log(result)
【讨论】:
这个问题的正确答案不止一个。最简单和最直观的一种(不影响性能)是使用Array.prototype.toString() 加入数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。 [17, 23, 9, 590].toString() 返回字符串 "17,23,9,590",然后使用 String.prototype.indexOf() 查找 7 的索引,该索引返回从 0 开始的 serach 值索引,如果未找到则返回 -1。
一句话总结:
console.log([17, 23, 9, 590].toString().indexOf(7) != -1);
【讨论】: