如何扩展和折叠一系列单字符?

时间:2019-08-24 19:33:50

标签: javascript arrays string collapse expand

我正在处理由于某种原因已突变为单字符数组的数据(一个长字符串)。这是一个例子:

['f', 'o', 'o', ' ', 't', 'e', 's','t', ' ', 'b', 'a', 'r']

我需要执行一些正则表达式,并以此作为普通字符串来搜索/替换。所以我需要将其转换为普通

'foo test bar'

...对此进行一些更改,例如将“ test”替换为“ hi”,然后将其恢复为以前的状态:

['f', 'o', 'o', ' ', 'h', 'i' ' ', 'b', 'a', 'r']

我想来自C ++背景,我想将此char的字符串视为char*,而无需进行昂贵的操作。

2 个答案:

答案 0 :(得分:0)

您可以join将数组转换为字符串。 replace一词test。然后使用Array.from()

将其转换回字符数组

const array = ['f', 'o', 'o', ' ', 't', 'e', 's', 't', ' ', 'b', 'a', 'r'],
      output = Array.from(array.join('').replace('test', 'hi'));

console.log(output)

答案 1 :(得分:0)

您可以使用 .join()将数组转换为字符串,例如:

let  str =['f', 'o', 'o', ' ', 't', 'e', 's','t', ' ', 'b', 'a', 'r'].join(" "));

//return 'foo test bar'

然后用 .replace 替换String,例如:

str.replace('test','hi');

您还使用 .split(“”)将字符串转换为数组,例如:

console.log('foo test bar'..split(""));

//return ['f', 'o', 'o', ' ', 'h', 'i' ' ', 'b', 'a', 'r']