Javascript 选择保存split()的一个索引

Javascript selecting to save one index of split()

我有一个值 - toggle-save_2 我想提取 2 部分。 underscore 之后的部分将始终是我需要的部分,但前一部分的长度(在本例中为 toggle-save_)可能会有所不同(例如 notoggle-val_45)。尽管此长度可能会有所不同,但它始终会通过 underscore.

与结束编号分隔

我现在正在用这个

var current = this.id.split('_');
current = current[1];

到select的数量。

如果我可以将一个变量传递给拆分,只给我拆分结果的第二个索引,那就太棒了。

进行拆分时,只需 select 第二个索引。

var current = this.id.split('_')[1];

split方法只能从末尾限定,永远return一个数组

不需要使用split,可以使用字符串操作获取部分字符串:

var current = this.id.substr(this.id.indexOf('_') + 1);

这里最好的解决方案是使用 lastIndexOf and substring,像这样

function getLastPart(strObject) {
    return strObject.substring(strObject.lastIndexOf("_") + 1);
}

console.log(getLastPart("toggle-save_2"));
// 2
console.log(getLastPart("notoggle-save_45"));
// 45

对于这种情况更好,因为您已经知道 _ 将位于最后一个位置附近。由于 lastIndexOf 从最后一个位置开始,它很快就会找到 _,我们需要做的就是从下一个位置获取字符串的其余部分。

我经常在拆分字符串时只需要 String.prototype.split 结果的最后一个值,而不管拆分产生多少个值,其余的都视为垃圾。

当出现这些情况时,我喜欢将 Array.prototype.popsplit

联系起来
var s = 'toggle-save_2',
    current = s.split('_').pop();