繁体   English   中英

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

[英]Covert comma-separated string to array

尝试将逗号分隔的字符串转换为带引号的数组,并在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”]

尝试遵循以下步骤: 将逗号分隔的字符串转换为数组 ,但未转换为数组。

它正在转换为数组,但是当您输出字符串(在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"] 

同样,数组是“对象”,但是还有其他方法可以确定“对象”是否是数组的实例:

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

给定输入字符串,您可以将String.prototype.match()RegExp /[^,]+/g配合使用/[^,]+/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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM