Javascript 从阵列中筛选数据

Javascript 从阵列中筛选数据,javascript,arrays,Javascript,Arrays,表中有一个示例元素: zxcdsa.com/photo-277590-30x24.jpeg zxcdsa.com/photo2-254654.png 我想拒绝在其名称el.src中包含从30x30到350x350的字符串的元素。我怎样才能得到这种效果? 使用以下各项筛选元素: var newArray = someImages.filter(function (el) { const min = 400; const max = 700; const delimiter = 'x'; re

表中有一个示例元素:

zxcdsa.com/photo-277590-30x24.jpeg

zxcdsa.com/photo2-254654.png

我想拒绝在其名称el.src中包含从30x30到350x350的字符串的元素。我怎样才能得到这种效果? 使用以下各项筛选元素:

var newArray = someImages.filter(function (el) {
 const min = 400;
 const max = 700;
 const delimiter = 'x';
return el.width >= 400 ||
 el.class.indexOf('post-image') > -1 ||
 el.src.match( /\d+x\d+/ )[ 0 ]
   .split( delimiter )
   .every( ( number ) => {
     return number >= min && number <= max;
   });
 ....
});
当match找不到项目时,此代码不起作用

例如:

29x200=>拒绝 200x220=>接受 不带YYxYY=>接受 当.match未找到匹配项时,它将返回null,而不是数组,因此无法使用[0]为其编制索引。因此,您需要将其分解为一个变量赋值,测试它是否为null,以及其他

您还可以在regexp中使用捕获组,以避免调用split


认为你在给自己制造麻烦


从逻辑上讲,将字符串拆分为数组,然后获取数字,如果数字可被10整除,则允许,如果不允许,则不允许

什么是字符串、最小值和最大值?请在阵列中发布.string is el.src链接不起作用:您正在查找的资源已被删除、名称已更改或暂时不可用。
var newArray = someImages.filter(function (el) {
  return el.width >= 400 ||
    el.class.indexOf('post-image') > -1 ||
    ((m = el.src.match( /(\d+)x(\d+)/ )) && 
      [m[1], m[2]].every( number => number >= min && number <= max))
    ....
});