如何去除数组中字符串的引号?数组拼接对象与字符串后引号问题
问题根源
你现在的问题是keywrdrtrn本质是个字符串,不是对象。你写的<code>{city_name:'${city_name}'}</code>其实是把对象格式的文本当成字符串赋值了,所以用concat拼接时,数组里自然会把它当成字符串元素,显示带引号。
解决方法
方法1:直接定义成对象(推荐)
把keywrdrtrn定义为对象字面量,而不是字符串。这样concat的时候会把它作为对象加入数组,不会出现引号:
// 直接创建对象,用模板字符串填充属性值 var keywrdrtrn = { city_name: `${city_name}` }; var obj = v[0].concat(v[1], keywrdrtrn);
这样拼接后的数组里,第三个元素就是正常的对象,不会有引号。
方法2:把现有字符串转成对象(应急方案)
如果因为某些原因只能拿到这个字符串,需要先把它转成对象。注意JSON格式要求属性名和字符串值用双引号,所以要先替换单引号:
// 先处理字符串格式,把单引号转成双引号 var str = keywrdrtrn.replace(/'/g, '"'); // 转成对象 var keyObj = JSON.parse(str); // 再拼接 var obj = v[0].concat(v[1], keyObj);
但这种方法容易因为字符串格式问题报错,比如如果字符串里有未转义的引号,就会失败,所以优先用方法1。
内容的提问来源于stack exchange,提问作者Brian Martin
相关产品推荐
相关产品推荐

