将逗号分隔的字符串隐藏到数组

时间:2017-06-05 01:14:12

标签: javascript arrays

尝试将逗号分隔的字符串转换为数组w / 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

我希望数组为:[“field1”,“field2”]

试图遵循:Convert comma separated string to array 但它没有转换为数组。

3 个答案:

答案 0 :(得分: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));




答案 1 :(得分: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

答案 2 :(得分: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]);