我正在尝试编写一个函数,它要么接受字符串列表,要么接受单个字符串。如果它是一个字符串,那么我想把它转换成一个只有一个项的数组,这样我就可以在上面循环,而不用担心出错。
那么如何检查变量是否为数组?
我正在尝试编写一个函数,它要么接受字符串列表,要么接受单个字符串。如果它是一个字符串,那么我想把它转换成一个只有一个项的数组,这样我就可以在上面循环,而不用担心出错。
那么如何检查变量是否为数组?
当前回答
首先,您可以检查console.log(对象类型)。
如果输出是对象,则var{data}=对象,即根据对象键销毁对象。
函数可以是这样的:
const abc = (str1, str2=null) => {
var result = [];
result.push(str1);
result.push(str2);
return result.join("");
}
其他回答
我做这件事的方式很简单。这对我有用。
Array.prototype.isArray = true;
a=[]; b={};
a.isArray // true
b.isArray // (undefined -> false)
我会制作一个函数来测试您正在处理的对象的类型。。。
函数whatAmI(me){return Object.pr原型.toString.call(me).split(/\W/)[2];}//测试控制台日志(whatAmI([“瞄准”,“@”]),whatAmI({生活:4,呼吸:4}),whatAmI(函数(ing){return ing+“到全局窗口”}),我(“要和你做什么?”));//输出:数组对象函数字符串
然后你可以写一个简单的if语句。。。
if(whatAmI(myVar) === "Array"){
// do array stuff
} else { // could also check `if(whatAmI(myVar) === "String")` here to be sure
// do string stuff
}
测试输入值是否为数组的简单函数如下:
function isArray(value)
{
return Object.prototype.toString.call(value) === '[object Array]';
}
这可以跨浏览器使用,也可以使用较旧的浏览器。本文摘自T.J.Crowders的博客文章
这个问题只有一行解决方案
x instanceof Array
其中x是变量,如果x是数组,则返回true,如果不是,则返回false。
检查此项的简单函数:
function isArray(object)
{
return object.constructor === Array;
}