简单的string拆分是返回对象而不是数组

我正在尝试一个简单的string拆分在NodeJS,但它是返回一个对象,而不是数组。

var mytext = "a,b,c,d,e,f,g,h,i,j,k"; var arr = mytext.split(","); console.log(typeof mytext); <======= output string console.log(typeof arr); <======= output object 

jsfiddle: http : //jsfiddle.net/f4NnQ/

为什么?

String.prototype.split的输出是一个数组,这是一个对象。

 console.log(typeof []); // object 

你可以确认返回的对象是一个数组,像这样

 console.log(Object.prototype.toString.call(arr)); // [object Array] console.log(arr); // [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k' ] 

String.prototype.split的MDN文档引用,

split()方法通过将string分隔成子string ,将string对象分割成string数组

数组是javascript中的对象。

如果你想检查它是否是一个数组 –

你可以做 –

Array.isArray(arr)

一个数组是一个对象。

在这里阅读关于typeof结果

如果你输出为

 console.log(arr); 

你会看到一个数组

拆分方法总是返回一个数组。 数组是javascript中的一个对象。 如果你想检查它是否是一个数组,使用Array.isArray(arr)

 var mytext = "a,b,c,d,e,f,g,h,i,j,k"; var arr = mytext.split(","); console.log(typeof mytext); <======= output string console.log(arr); `this will return object` for(i=0;i<=10; i++){ console.log(arr[i]); }