下面的示例按预期结果进行:
const str = "abbcccddddeeeeeffffff";
const res = str.match(/(.)\1*/g);
console.log(res);Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试对非连续字母进行分组:
const str = "abxbcxccdxdddexeeeefxfffffxx";
const res = str.match(/(.)\1*/g);
console.log(res);Run Code Online (Sandbox Code Playgroud)
我想得到这样的东西:
[ 'a', 'bb', 'xxxxxxx', 'ccc', 'dddd', 'eeeee', 'ffffff']
Run Code Online (Sandbox Code Playgroud) 在我看来,这个问题与This question无关,我试图了解有关 javascript 核心的一些行为,我不想要库或其他东西。
我试图理解为什么这段代码实际上会修改 const originalArray
const originalArray = [0, 2, 1, 1, 1];
var newArray = originalArray;
var removed = newArray.splice(0,3);
console.log(originalArray);//return [ 1, 1 ]
Run Code Online (Sandbox Code Playgroud)
但同时这是不可能的:
const originalArray = [];
originalArray = [1];
Run Code Online (Sandbox Code Playgroud)
那么,如何在没有库的情况下创建真正不可变的数组?