我有一个包含两个元素的数组。 当我的 sportsPaperRank 是这种格式 xxx-xx-xxxx 且权重以 80 开头时,并且 search.sportsSwim === "hi"|| search.sportsSwim ===“hello”,我需要忽略该值, 但现在它忽略了这两个项目,但我需要显示第一个项目,因为重量的值从 55 开始。 你能告诉我如何修复它吗?
现在我做了正则表达式检查和匹配检查, 但没有任何作用。 你能告诉我如何修复它吗?
let data = [
{
"weight": 555666111,
"sportsBall": "wewewe",
"sportsSwim": "hi",
"sportsPaperRank": "xxx-xx-0000",
"sportsHeight": "wew",
"sportsRing": "yuyu",
"sportsBat": "yuyu-ioioioio",
"playing": "erioioerio"
},
{
"weight": 80035647,
"sportsBall": "klklkl",
"sportsSwim": "hello",
"sportsPaperRank": "xxx-xx-0000",
"sportsRing": "yuyu",
"sportsBat": "yuyu-ioioioio",
"playing": "erioioerio"
},
{
"weight": 80035649,
"sportsBall": "klklkl",
"sportsSwim": "hello",
"sportsPaperRank": "22-2340000",
"sportsRing": "yuyu",
"sportsBat": "yuyu-ioioioio",
"playing": "erioioerio"
}
];
console.log(
'data.--->',
data
);
console.log(
'data[0]--->',
data[0].sportsPaperRank
);
let patternEIN = /^\d{2}\-?\d{7}$/;
//let patternEIN = /^\d{3}-\d{2}-\d{4}$/;
// let patternEIN = (/^\d{3}-?\d{2}-?\d{4}$/ | /^XXX-XX-XXXX$/);
console.log('no dashpattern check--->', ('xxxxx0000' === patternEIN));
console.log('pattern check hard --->', ('xxx-xx-0000' === patternEIN));
console.log('pattern check s--->', (data[0].sportsPaperRank === patternEIN));
console.log('pattern check .toString()--->', (data[0].sportsPaperRank.toString() === patternEIN));
let resultSports = data.filter(
search => {
console.log("pattern matching ", search.sportsPaperRank.match(patternEIN));
(search.weight) &&
(search.weight.toString().startsWith('80')) &&
(search.sportsSwim === "hi" || search.sportsSwim === "hello") &&
(search.sportsPaperRank.match(/xxx/g))
}
);
console.log(' resultSports--->', resultSports);
最佳答案
您可以通过在 if()
条件下使用 regex
来获取结果。这是您的代码片段:
var data1 = [
{
"weight": 555666111,
"sportsBall": "wewewe",
"sportsSwim": "hi",
"sportsPaperRank": "xxx-xx-0000",
"sportsHeight": "wew",
"sportsRing": "yuyu",
"sportsBat": "yuyu-ioioioio",
"playing": "erioioerio"
},
{
"weight": 80035647,
"sportsBall": "klklkl",
"sportsSwim": "hello",
"sportsPaperRank": "xxx-xx-0000",
"sportsRing": "yuyu",
"sportsBat": "yuyu-ioioioio",
"playing": "erioioerio"
}
];
var resultSports = data1.filter(function(search){
if((!search.sportsPaperRank.match(/\w{4}-\w{2}-[0-9]{4}/gm)) && (!search.weight.toString().match(/^80/gm)) && ((search.sportsSwim === "hi") || (search.sportsSwim === "hello"))){
return search;
}
});
console.log(resultSports);
在这里,您将获得具有 weight:555666111
和 "sportsPaperRank": "xxx-xx-0000"
的单个对象。
您可以在此 link 中检查我的 sportsPaperRank:xxxx-xx-0000
的正则表达式。
您可以在这个 link 中检查我的正则表达式中的 "weight": 555666111
。
关于javascript - 根据格式过滤数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57859781/