2017-06-05 44 views
0

试图逗号分隔的字符串转换为阵列瓦特/围绕JS每个值引号:隐蔽逗号分隔的字符串数组

var ipd = 'field1,field2'; 
 
console.log('Img Pad string: ' + ipd); // field1,field2 
 
var ipdarray = new Array(); 
 
ipdarray = ipd.split(','); 
 
console.log('Img Pad array split: ' + typeof ipdarray); // object 
 
console.log('Img Pad array: ' + ipdarray); // field1,field2

我想要的阵列为:[”字段1“,”字段2“]

试图按照此:Convert comma separated string to array 但它不转换为数组。

+0

'console.log('Img Pad array:',ipdarray)''? –

+0

数组是一个对象.... – epascarello

回答

3

它正在转换为数组,但是当您输出字符串(在console.log中)时,由于+运算符(充当连接器),该数组将被强制回到该字符串语法中。

这里是正在发生的事情更加孤立的例子:

var string = 'field1,field2'; 
 
var arr = string.split(','); 
 
console.log(Array.isArray(arr)); 
 
console.log(arr.length); 
 

 
//When using the +, it will coerce into a string 
 
console.log('Coerce to string ' + arr); 
 

 
//When passing the array as an argument, it will stay an array 
 
console.log('Stays and array', arr);

为了保持数组文本语法,你需要JSON.stringify的数组,如果输出之前,你想使用+运算符,或者你可以输出数组作为单独的参数console.log

JSON.stringify(ipdarray); 

看到它在行动:

var ipd = 'field1,field2'; 
 
console.log('Img Pad string: ' + ipd); // field1,field2 
 
var ipdarray = new Array(); 
 
ipdarray = ipd.split(','); 
 
console.log('Img Pad array split: ' + typeof ipdarray); // object 
 
console.log('Img Pad array: ' + JSON.stringify(ipdarray)); // ["field1","field2"] 
 
// OR 
 
console.log('Img Pad array: ', ipdarray); // ["field1","field2"]

另外,阵列是“对象” S,但也有其他的方法来确定是否该“对象”是一个数组的一个实例:

var arr = []; 
 
console.log(typeof arr); 
 
console.log(arr instanceof Array) 
 
console.log(Array.isArray(arr));

+0

但这不是一个数组,是一个字符串 –

+0

@DanielPérez,你是什么意思?我正在使用OP提供的代码片段。它被转换为一个数组,但是当使用+操作符进行控制台日志记录时,它将数组转换为字符串 – KevBot

+0

@KevBot - 感谢您的解释,非常感谢 – parti

0

定的输入字符串即可我们ÈString.prototype.match()RegExp/[^,]+/g匹配未逗号,

var ipd = 'field1,field2'; 
var ipdarray = ipd.match(/[^,]+/g); 

注意+操作者在

转换数组串
console.log('Img Pad array: ' + ipdarray); // field1,field2 

使用逗号,操作者在console.log()呼叫一个或多个字符

console.log('Img Pad array: ', ipdarray); // field1,field2 
0

var a = "field1,field2" 
 

 
var b = a.split(','); 
 

 
var c = b.map(function (v) { 
 
return '"' + v + '"'; 
 
}) 
 

 
console.log(c); 
 
console.log(c[0]); 
 
console.log(c[1]);