2017-06-05 64 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]);