数组转字符串php-在 JavaScript 中将字符串转换为字段的六种方法

链表是 JavaScript 中最强大的数据结构,我发现自己通过将字符串转换为链表来解决许多算法。 所以我想到结合和比较做同一件事的各种方法。 从字符串到链表的转换总是使用 split() 完成,从 ES6 开始,我们可以使用很多工具来完成同样的事情。 让我们逐一讨论并讨论它们的异同。

1.使用.split(''):

split() 是一种字符串方法,它将字符串拆分为具有有序模式列表的字段。 这是 ES6 的方式,也是完成工作的最简洁的方式。

* Seperate string by space character(' ') *
const myFavShow = 'The Office';
const myFavShowArray = myFavShow.split('');
console.log(myFavShowArray) //['T', 'h', 'e', ' ', 'O', 'f', 'f', 'i', 'c', 'e']

这些方法的另一个优点是我们可以用字符或空格分隔字符串。 下面是我们如何做到这一点的示例。

* Seperate string by whitespace(' ') *
const myFavShow = 'The Office';
const myFavShowArray = myFavShow.split(' ');
console.log(myFavShowArray) //['The', 'Office']
* Seperate string by a character '-' *
const favDialogue = 'Thats-what-she-said';
const favDialogueArr = favDialogue.split('-');
console.log(favDialogueArr) //['Thats', 'what', 'she', 'said']

它还适用于正则表达式,您可以在此处找到 split() 的完整文档。

这些方法完美地将字符串元素分离到链表中数组转字符串php,但它有其局限性。

注意:此方法不适用于不常见的 Unicode 字符。 此方法返回字符的 Unicode,而不是实际字符,这可能会使我们的工作显得更复杂,但 MDN 文档已更新,因此如果我们只包含 u 标志,我们就可以使其与 Unicode 一起使用。

":smile::smile:".split(/(?:)/); // [ "ud83d", "ude04", "ud83d", "ude04" ]
":smile::smile:".split(/(?:)/u); // [ ":smile:", ":smile:" ]

​2. 使用扩展句型 ([...str])

这是ES2015的一个特性,使得转换变得非常容易。

const myFavShow = 'The Office'
const myFavShowArray = [...myFavShow]
console.log(myFavShowArray) 
// ['T', 'h', 'e', ' ', 'O', 'f', 'f', 'i', 'c', 'e']

清除 split() 中的限制也有帮助,考虑下面的示例,我们可以使用这些技巧轻松分割任何字符。

const animal = '    '
const animalArr = [...animal]
console.log(animalArr) // ['  ', '  ']

3.使用Array.from(str):

数组中,from() 方法从可迭代或类似字段的对象创建一个新的浅复制 Array 实例。

const myFavShow = 'The Office'
const myFavShowArray = Array.from(myFavShow);
console.log(myFavShowArray) 
// ['T', 'h', 'e', ' ', 'O', 'f', 'f', 'i', 'c', 'e']

​这些方法在处理不常见字符时不会造成任何问题。

const str = ':sunglasses::sunglasses:'
const arr = Array.from(str)
console.log(arr)
// [':sunglasses:', ':sunglasses:']

4.使用Object.assign([],str)

allocate() 方法将一个或多个源对象的所有属性复制到目标对象。 然而数组转字符串php,关于这些技术有两点需要记住。 一是哪个对象,二是assign()复制属性值称为深复制。 在使用此方法之前,您必须牢记这一点。

const myFavShow = 'The Office'
const myFavShowArray = Object.assign([], myFavShow);
console.log(myFavShowArray) 
// ['T', 'h', 'e', ' ', 'O', 'f', 'f', 'i', 'c', 'e']

另一个是我们在 split() 方法中遇到了同样的问题:它无法分隔不常见的字符(我们看到的是 Unicode 而不是实际的字符)。

const s = ':smile::smile:'
const a = Array.from(s)
console.log(a) // [':smile:', ':smile:']

5. 使用旧样式(forloop 和 array.push())

实际上我们有很多选择可以使用,但我不得不提一下这些旧式的方式,我们使用for循环和链表方式push()来推送字符串元素。 这不是最简洁的方法,但如果您想远离 JavaScript 不断变化的复杂性(尽管我更喜欢其他形式),那么绝对值得一提。

const s = 'the office';
const a = [];
for (const s2 of s) {
   a.push(s2);
}
console.log(a); // ['t', 'h', 'e', ' ', 'o', 'f', 'f', 'i', 'c', 'e']

据报道,它对于不常见(Unicode)字符也非常有效。 请参阅下面的反例。

字符串数组转换成字符串c_字符串数组转换成字符串_数组转字符串php

const s = '        :smile::smile:';
const a = [];
for (const s2 of s) {
   a.push(s2);
}
console.log(a); //['  ', '  ', '  ', '  ', ':smile:', ':smile:']

6.使用Array.prototype.slice.call('string')

const favShow = Array.prototype.slice.call("The Office!");
console.log(favShow); //['T', 'h', 'e', ' ', 'O', 'f', 'f', 'i', 'c', 'e', '!']

​该方法也存在与split()方法相同的问题,所以使用时要小心。

const favShow = Array.prototype.slice.call("The Office!");
console.log(favShow); //['uD83D', 'uDE04', 'uD83D', 'uDE04']

推理

总而言之,我们可以通过以下方法来实现这一目标。 以下是我在 JavaScript 中将字符串转换为链表的 6 种方法的综述。 如果您使用其他方式完成工作,请在留言区给我留言交流。