JS Array.splice return 原始数组并链接到它

JS Array.splice return original Array and chain to it

我有一个字符串,其值与此类似 a,b,c,d,我想按索引删除特定字母

所以这就是我所做的 str.split(',').splice(1,1).toString() 这(显然)不起作用,因为 splice 返回的是删除的值而不是原始数组

有没有办法在一个班轮中完成上述工作?

var str = "a,b,c,d";
console.log(str.split(',').splice(1,1).toString());

提前致谢。

Splice 工作到位,所以 oneliner 是

const arr = "a,b,c,d".split(','); arr.splice(1,1); console.log(arr.toString());

如果你想在 oneliner 中使用字符串,你必须在过滤器中硬编码索引

console.log("a,b,c,d".split(',').filter((item, i) => i != 1).toString())

或者两个切片(根本没有性能)

const arr = "a,b,c,d".split(',')
console.log([...arr.slice(0,1),...arr.slice(2)].toString())

您可以使用 filter 并添加 condition 作为 index != 1

var str = "a,b,c,d";
console.log(str.split(',').filter((x, i) => i != 1).toString());

使用正则表达式替换

替代方法

var str = "a,b,c,d";

console.log(str.replace(/,\w+/, ''))

另一个奇怪的解决方案。解构数组,删除不需要的索引,获取一个对象并连接它的值。

var string = "a,b,c,d",
    { 1: _, ...temp } = string.split(',')

console.log(Object.values(temp).join(','));