Javascript 忽略.each()循环中空值的最佳实践?
我有一段代码:Javascript 忽略.each()循环中空值的最佳实践?,javascript,jquery,Javascript,Jquery,我有一段代码: self.list.push(values); for (var i = 1; i < $(elemthree, this).text().match(/(\d+)(?!.*\d)/g, '$1'); i++) { self.list.push(values); } self.list.push(值); 对于(var i=1;i
self.list.push(values);
for (var i = 1; i < $(elemthree, this).text().match(/(\d+)(?!.*\d)/g, '$1'); i++) {
self.list.push(values);
}
self.list.push(值);
对于(var i=1;i<$(elemthree,this).text().match(/(\d+)(.*\d)/g,'$1');i++){
self.list.push(值);
}
它遍历站点上的一组数据,并输出特定元素的数组值,必要时可多次输出。这是跨多个站点(10+)运行的
然而,有一个站点在我需要的30行数据之后返回2500多行空数据,一旦数组完成并被外部程序解析,就会导致大量的处理时间。我通过将这段代码包装成以下代码来修复它:
if (values != '') {
self.list.push(values);
for (var i = 1; i < $(elemthree, this).text().match(/(\d+)(?!.*\d)/g, '$1'); i++) {
self.list.push(values);
}
}
if(值!=''){
self.list.push(值);
对于(var i=1;i<$(elemthree,this).text().match(/(\d+)(.*\d)/g,'$1');i++){
self.list.push(值);
}
}
这是按预期的方式工作的,不会将空行添加到列表中,而且对于我将来可能要解析其数据的任何站点来说,这似乎也是未来的证明。但我觉得很不舒服。我这样做对吗?有没有更好的方法
(在任何人提到我有一个从I=1而不是I=0开始的循环,并删除第一个self.list.push之前-这是故意的,因为一些解析的站点没有提到数量,而是只列出了一次我需要的值。)//检查它是否为emtpy
if (!values) {
self.list.push(values);
for (var i = 1; i < $(elemthree, this).text().match(/(\d+)(?!.*\d)/g, '$1'); i++) {
self.list.push(values);
}
}
if(!值){
self.list.push(值);
对于(var i=1;i<$(elemthree,this).text().match(/(\d+)(.*\d)/g,'$1');i++){
self.list.push(值);
}
}
//检查它是否为空或空白
if (!values.trim()) {
self.list.push(values);
for (var i = 1; i < $(elemthree, this).text().match(/(\d+)(?!.*\d)/g, '$1'); i++) {
self.list.push(values);
}
}
if(!values.trim()){
self.list.push(值);
对于(var i=1;i<$(elemthree,this).text().match(/(\d+)(.*\d)/g,'$1');i++){
self.list.push(值);
}
}
没关系。除此之外,还有许多其他不需要的值,其中!=''代码>将等于TRUE
考虑你想要什么而不是不想要什么。
您需要长度大于零的字符串。用那个
if (values.length > 0)
for循环对我来说没有意义。那么您多次将相同的值推送到数组?是的。我正在制作一个项目列表,这些项目可能会以(数组值)x2的形式出现多次。但是,如果它出现一次,那么它只是(数组值)。