在数组中查找数字(两位数字)



>我尝试在数组中找到数字 7 并返回true(不管是747还是507)

阵列:[17, 23, 9, 590]

我尝试使用arr.includes(7)但这只返回数字7. (所以在这种情况下它返回false,因为数组中没有7- 只有17)

问题是比较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,如果找不到,则返回 serach 值的从 0 开始的索引或 -1。

用一行总结一下:

console.log([17, 23, 9, 590].toString().indexOf(7) != -1);

最新更新