我有一个像这样的数组
array: [
'Student 1|##|100|@@|Third answer',
'Student 2|##|10|@@|Third Answer ',
'Student 10|##|50|@@|Third Answer'
]
其中 100 代表数组第一项的 id , 10 代表 id 数组的第二项和 50 是第三项的 id ,依此类推。
我还有一个变量,其值等于 id ,可以 100 或 10 或 50
var id = data.myId
我需要检查数组中是否存在id。
因此,如果 id 10 并且我array.includes(id.toString())
它将不会返回true,除非我的数组如下:
array: [
'Student 1|##|100|@@|Third answer',
'Student 2|##|10|@@|Third Answer ',
'Student 10|##|50|@@|Third Answer',
'10'
]
那我该怎么办呢。我猜我必须使用正则表达式。
答案 0 :(得分:3)
我需要检查数组中是否存在id。
使用some
,split
并在分割字符串项的每个项目后检查第3项。
var has10 = array.some( s => s.split( "|" )[2] == "10" );
<强>演示强>
var array = [
'Student 1|##|100|@@|Third answer',
'Student 2|##|10|@@|Third Answer ',
'Student 10|##|50|@@|Third Answer'
];
var id = "10";
var hasId = array.some( s => s.split( "|" )[2] == id );
console.log( hasId );
&#13;
答案 1 :(得分:1)
您可以使用 Array#.find() 此正则表达式 \|10\|
:
let reg = new RegExp("\\|" + id + "\\|");
它将为您提供与正则表达式匹配的第一个元素,如果没有匹配则为空数组。
var array = [
'Student 1|##|100|@@|Third answer',
'Student 2|##|10|@@|Third Answer ',
'Student 10|##|50|@@|Third Answer'
];
var id = 10;
let reg = new RegExp("\\|" + id + "\\|");
var result = array.find(function(item) {
return item.match(reg);
});
console.log(result);
&#13;