JS Array.splice返回原始Array并链到它。

问题描述 投票:1回答:3

我有一个字符串,其值是这样的 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());

先谢谢了。

javascript splice
3个回答
4
投票

你可以使用 filter 并加 condition 作为 index != 1.

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

4
投票

另一个奇怪的解决方案。重构数组,去掉不需要的索引,得到一个对象,然后加入其中的值。

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

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

3
投票

这个 另辟蹊径 替换

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

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

2
投票

拼接工作到位,所以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())
© www.soinside.com 2019 - 2024. All rights reserved.