JavaScript 数组 - 用单引号分隔值和值的值



我有一个看起来像这样的数组:

var array = ["Rock Paper,Shoot,Dulce", "Once,Apple Mic,Chairs"]

我想返回这样的结果:

'Rock Paper','Shoot','Dulce','Once','Apple Mic','Chairs'

这是我到目前为止所做的:

includes = tagsI.map(tag => `'${tag}'`).join(',')

但这只用逗号和单引号分隔值......而不是值的值。

我该怎么做?

谢谢

将数组的项连接到带有逗号的单个字符串中。用逗号分隔符拆分字符串,将项目映射到所需的格式,然后用逗号再次连接。

const array = ["Rock Paper,Shoot,Dulce", "Once,Apple Mic,Chairs"]
const result = array
.join(',')
.split(',')
.map(tag => `'${tag}'`)
.join(',');
console.log(result);

用逗号分隔tag并使用另一个地图

var tagsI = ["Rock Paper,Shoot,Dulce", "Once,Apple Mic,Chairs"]

var result = tagsI.map(tag => tag.split(',').map(tag => `'${tag}'`)).join(',');
console.log(result)

如何使用reduce:

var array = ["Rock Paper,Shoot,Dulce", "Once,Apple Mic,Chairs"];

//V1 : compatible with all browsers
var result = array.reduce((acc, elem, index, arr)=>{
var n_arr = elem.split(",").map(map_elem=> `'${map_elem}'`);
n_arr.forEach(fe_elem => acc.push(fe_elem));
return acc;
}, []).join(",");


console.log(result);
document.querySelector("#res1").innerHTML = result;

//V2: compatible with some browsers
var result2 = array.reduce((acc, elem, index, arr)=>{
var n_arr = elem.split(",").map(map_elem=>`'${map_elem}'`);
acc.push(...n_arr);
return acc;
}, []).join(",");

console.log(result2)
document.querySelector("#res2").innerHTML = result2;
<body>
<p id="res1"></p>

<p id="res2"></p>
</body>

原理如下:

  • 我们有一个初始的数组"数组",其中我们存储了字符串(["Rock Paper,Shoot,Dulce","Once,Apple Mic,Chairs"](

  • 对于数组中的每个字符串:

    1. 我们将所述字符串拆分为一个数组,">
  • 我们用引号将这个数组的每个元素括起来
  • 我们将这些元素中的每一个添加到将用作结果变量的数组中
  • 我们创建了一个由 "," 连接的字符串



PS:如果你想要一个数组而不是一个字符串,只需删除join(",")

您首先需要拆分数组中的每个元素。

var array = ["Rock Paper,Shoot,Dulce", "Once,Apple Mic,Chairs"];
var split = array.map(v => v.split(","));
var flattened = [].concat.apply([], split);
var str = flattened.join(",");

相关内容

最新更新