为什么这个lodash包含return true



我有一个csv值,需要检查数组单元中的csv值是否可用。

为什么我在这两种情况下都是真的?

let arr = [16]
let check = _.includes('14,15,16,17,18,19', arr)
console.log(check);
arr = [6]
check = _.includes('14,15,16,17,18,19', arr)
console.log(check);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

_includes的签名是

_.includes(collection, value, [fromIndex=0])

如果collection是一个字符串,它在这里:

如果集合是字符串,则检查值为的子字符串

当被强制为字符串时,您传递的两个值[16][6]都作为子字符串存在。('16''6'(

听起来你可能想先把字符串变成一个数字数组,然后只检查一个值,而不是一个数组。例如:

const inputString = '14,15,16,17,18,19';
const arrOfNumbers = JSON.parse(`[${inputString}]`);
console.log(arrOfNumbers.includes(16));
console.log(arrOfNumbers.includes(6));

最新更新