确保变量是数组

时间:2018-07-24 00:18:42

标签: javascript

我想在可能是单个对象或数组的变量上运行map()。但是,如果变量是一个对象,则会引发错误。

我尝试使用传播运算符来确保变量变成数组,但显然也不起作用:

// items can either be an object or an array of objects
renderedItems = [...items]
    .filter(item => !!item)
    .map((item, index) => _this.renderItem(item, index));

如何确定正在执行filter()map()的变量是数组?听说Array.isArray尚未得到完全支持。

1 个答案:

答案 0 :(得分:2)

您可以使用Rename-Item $Eticket -NewName { $_.Name -replace '^Ben_sucksatpowershell_(\d{4})_(\d{2})_(\d{2})_.*?\.txt$', 'b.$1$2$3.b' } 来检查变量是否为数组。

instanceof

if(variable instanceof Array){
  //variable is an Array
} else {
  //variable is not an Array
}

您也可以使用var array = [1, 2, 3, 4, 5]; var str = "String"; function isArray(obj){ return obj instanceof Array; } console.log("array is an Array: "+isArray(array)); console.log("str is an Array: " + isArray(str));

Array.isArray

if(Array.isArray(variable)){
 //variable is an Array
} else {
  //variable is not an Array
}

您可以检查变量的构造函数是否等于Array。

var array = [1, 2, 3, 4, 5];
var str = "String";
function isArray(obj){
    return Array.isArray(obj);
}
console.log("array is an Array: "+isArray(array));
console.log("str is an Array: " + isArray(str));