简单的字符串拆分返回对象而不是数组

时间:2014-04-01 13:04:26

标签: javascript node.js

我正在尝试在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/

为什么?

6 个答案:

答案 0 :(得分:10)

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对象拆分为字符串数组

答案 1 :(得分:1)

数组是javascript中的对象。

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

你可以做 -

Array.isArray(arr)

答案 2 :(得分:0)

数组是一个对象。

Read about typeof results here

答案 3 :(得分:0)

如果输出为

console.log(arr);

你会看到一个数组

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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]);    
}