对于基本用途,这些功能相同。根据额外的字符串将输入字符串拆分为数组。两者都带有一个额外的“极限”变量。
但是,在PHP中,该限制意味着您匹配了 limit 个项目之后,字符串的其余全部都进入了数组的最后一个项目。这实际上非常有用。
JS的限制意味着一旦您的返回数组具有 limit 个项目,它就会停止向其中添加项目。这种限制的实现是无用的,并且可以很容易地与其他数组函数一起模拟。
那么有没有一种简单的方法可以用JS模拟PHP的方法呢?
将以下内容视为输入字符串:
$str = "7,43,This is a long sentence, know what I mean?";
我希望$str.split(",",3);
返回此数组:
{"7","43","This is a long sentence, know what I mean?"}
答案 0 :(得分:4)
使用String#split,Array#splice,Array#join和spread operator。
const s = "7,43,This is a long sentence, know what I mean?"
function explode(delimiter, str, limit) {
const data = str.split(delimiter);
return [...data.splice(0, limit - 1), data.join(delimiter)];
}
const res = explode(',', s, 3);
console.log(res);
答案 1 :(得分:3)
使用String.split
,Array.slice
,Array.concat
和Array.join
这样的事情应该可以满足您的要求:
function explode(char, str, limit) {
let a = str.split(char);
return a.slice(0, limit-1).concat(a.slice(limit-1).join(char));
}
let str = "7,43,This is a long sentence, know what I mean?";
console.log(explode(',', str, 3));