什么是确定JavaScript中的变量是否为数组的最佳事实标准跨浏览器方法?
在网上搜索有很多不同的建议,有些是好的,有些是无效的.
例如,以下是一种基本方法:
function isArray(obj) {
return (obj && obj.length);
}
Run Code Online (Sandbox Code Playgroud)
但是,请注意如果数组为空,或者obj实际上不是数组但实现了长度属性等会发生什么.
那么哪种实现在实际工作方面是最好的,跨浏览器并且仍然有效地执行?
我正在尝试将嵌套数组从其父数组中拼接出来。考虑以下数组。items.splice(0,1)应该给我第一个嵌套数组([1,2]),但是它似乎给我第一个嵌套数组,仍然嵌套在数组内部:
var items = [[1,2],[3,4],[5,6]];
var item = items.splice(0,1); // should slice first array out of items array
console.log(item); //should log [1,2], instead logs [[1,2]]
Run Code Online (Sandbox Code Playgroud)
然而,它似乎在另一个数组中返回所需的数组(第一项)。除非我这样做,否则我无法获得完整的数组item[0]。我到底错过了什么!?