我想在可能是单个对象或数组的变量上运行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
尚未得到完全支持。
答案 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));