专家问题:如何检查数组中的数据类型,以便此检查不检查数组变量本身的数据类型?也就是说,我有一个数组:
let BB = 'ccc';
let arr = ['aaa','ggg', BB,'']
我有一个函数可以迭代数组并执行一些操作,具体取决于数组元素的数据类型。在这种特殊情况下,绑定将转到以下行:
function change() {
let a = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] == '' || typeof arr[i] != 'string') {
a[i] = arr[i]
} else {
a[i] = getSummary(arr[i]) // здесь производятся некоторые вычисления в зависимости от того, какая строка содержалась в массиве.
}
}
return a;
}
console.log(a);
// итоговый массив получается вот такой: true, true, undefined, ''
// а нужно чтобы получилось: true, true, 'ccc', ''
一切都会好起来的,但我需要当算法偶然发现 时ВВ,它会写入最终的数组'ccc'而不是自身,但是,在检查数组的数据类型时,它还会检查ВВ并发现它还包含string,试图应用到它getSummary(arr[i]),但是由于这一行没有规定的动作,所以结果很自然是错误的。
因此,我将重复我的问题,如何在不检查数组所包含变量的数据类型的情况下检查数组的数据类型?也就是说,如果它是一个字符串,那么我们执行指定的操作,如果它是其他东西(例如,字符串类型的变量),那么我们忽略它。这些方法isNaN()没有typeof帮助,因为它们仍然查看变量的数据类型。
做出一系列例外,你会很高兴
或者,您可以将带有给定变量的测试添加到条件中:
但如果有多个这样的变量,那么对于每个变量都需要注册一个检查,这不是很方便和灵活
=================================================== =====
第二个选项是添加一个有效值数组
getSummary,每次在函数中输入一个新元素时,检查它是否在有效值列表中: