Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过更换和拆分缩短过滤器功能?_Javascript_Jquery_Filter_Replace_Split - Fatal编程技术网

Javascript 如何通过更换和拆分缩短过滤器功能?

Javascript 如何通过更换和拆分缩短过滤器功能?,javascript,jquery,filter,replace,split,Javascript,Jquery,Filter,Replace,Split,我将一个过滤器函数与replace()和split()结合使用。看起来像这样 jQuery('table .abc').filter((i, el) => jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0] + ' ' + jQuery(el).text().replace('a', 'b').split(' ')[1])) 有没有办法缩短它,使我不必使用相同的替换和拆分功能两次?因为我只需要组合[0]和[1

我将一个过滤器函数与replace()和split()结合使用。看起来像这样

jQuery('table .abc').filter((i, el) => jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0] + ' ' + jQuery(el).text().replace('a', 'b').split(' ')[1]))
有没有办法缩短它,使我不必使用相同的替换和拆分功能两次?因为我只需要组合[0]和[1]。

来缩短代码

jQuery('table .abc').filter((i, el) => 
    jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0] 
                    + ' ' 
                    + jQuery(el).text().replace('a', 'b').split(' ')[1]))
您可以使用for
.text()
,它接受一个函数并为选择中的每个元素调用该函数(这是您正在做的,但更简洁)

由于您似乎只使用了前两个单词,因此也可以使用
.slice(0,1)
giving:

$("table .abc").text((i,txt) => txt.replace("a","b").split(" ").slice(0, 2).join(" ") );
工作示例:

$(“table.abc”).text((i,txt)=>txt.replace(“a”,“b”).split(“”)。slice(0,2)。join(“”)

这不仅仅是两个字
这是第二行
一句话

离题:看起来您使用的
.filter()
不正确,应该是
.each()
。您不需要
。每个
,因为您可以使用do
$(选择).text(函数(i,text){返回文本。替换…