Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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从结果中删除NULL_Javascript_Arrays - Fatal编程技术网

javascript从结果中删除NULL

javascript从结果中删除NULL,javascript,arrays,Javascript,Arrays,为了我的缘故,我无法使用过滤器(.Filter(函数(d,i){return d}))来消除在这个数组上工作的“undefined”或“0” 该脚本在Applescript小程序中运行,并应以字符串形式返回所有生成的URL var x=Array.prototype.slice.call(document.querySelectorAll(“.product\u card”)) .map(功能(d,i){ var title=d.querySelector(“.product\U card\U

为了我的缘故,我无法使用过滤器(.Filter(函数(d,i){return d}))来消除在这个数组上工作的“undefined”或“0”

该脚本在Applescript小程序中运行,并应以字符串形式返回所有生成的URL

var x=Array.prototype.slice.call(document.querySelectorAll(“.product\u card”))
.map(功能(d,i){
var title=d.querySelector(“.product\U card\U title”),
link=d.querySelector(“a”);
控制台日志(标题);
控制台日志(链接);
if(title&&link&&Rocker/gi.test(title.textContent)){
return link.href
}
})
document.getElementById(“结果”).textContent=JSON.stringify(x)




首先,您可以通过使初始的
qSA
选择更加具体:
”.product\u card a.product\u card\u title“
来摆脱一些内部DOM选择

然后,您可以使用
.filter()
,方法是返回检查每个元素
.includes()
是否包含
“摇臂”
文本的结果。在映射
.href
之前执行此操作

最后,
.map()
将这些结果添加到每个
.parentNode
.href
,因为我们直接用文本选择了子节点

var x=Array.prototype.slice.call(document.querySelectorAll(“.product\u card a.product\u card\u title”))
.过滤器(功能(d){
返回d.textContent.toLowerCase().includes(“摇杆”)
})
.map(函数(d){return d.parentNode.href});
document.getElementById(“结果”).textContent=JSON.stringify(x)




您期望的输入和输出是什么?我发现if语句中只有一个显式返回,另一个返回隐式发生,并且返回未定义的。调用
筛选器
可能会有所帮助。@tryzniak-脚本应将所有URL作为字符串输出。用这些信息更新了我的OP,谢谢。谢谢@Crazy Train(ozzy lover?)这真是太棒了!不知道在哪里放置过滤功能。不客气。(ozzy/rhodes)虽然您可以重新编写它,首先收集
href
字符串以及一些
未定义的
值,但我认为首先使用
.filter()
更容易理解。