Javascript 使用字符串列表测试字符串
我有一个数组中包含的Id列表:Javascript 使用字符串列表测试字符串,javascript,arrays,list,typescript,Javascript,Arrays,List,Typescript,我有一个数组中包含的Id列表: var listId: string[] = []; var newId: boolean; for (let i in data.chunk) { listId.push(data.chunk[i].aliases[0]); } 然后我想用这个列表测试我的新Id。如果我的新Id在列表中,我想返回false,如果没有返回true for(let i of listId) { if(member.userId !== listId[i]) {
var listId: string[] = [];
var newId: boolean;
for (let i in data.chunk) {
listId.push(data.chunk[i].aliases[0]);
}
然后我想用这个列表测试我的新Id。如果我的新Id在列表中,我想返回false,如果没有返回true
for(let i of listId) {
if(member.userId !== listId[i]) {
newid = true;
}
else {
newId = false;
}
}
我不知道怎么做。。我建议的解决方案不起作用请不要
在else中返回false
,在for loop外部执行,一旦您确定项目已处理完毕
for(let i of listId) {
if(member.userId !== listId[i]) {
return true;
}
}
return false;
否则,除非第一个项的检查返回true
,否则您的方法将始终返回false
,而不检查其余项,因为它没有机会迭代和处理其余项
是的,但我需要一个返回true或false的布尔变量。像纽伊德 因为在我这样做之后,
if(member.userId!==userId&&newId){…}
使用标志
var flag = false;
for(let i of listId) {
if(member.userId !== listId[i]) {
flag = true;
break;
}
}
return flag;
试试这个
if(listId.indexOf(member.userId) !== -1)
{
newId = false;
}else
{
newid = true;
}
这也行
return !listId.some(id => member.userId === id);
您的阵列无法访问foreach循环外部。您需要此运算符才能访问整个值。希望您能提供帮助。尝试过使用调试器吗?是的,但我需要一个返回true或false的布尔变量。喜欢
newId
,因为在我这样做之后if(member.userId!==userId&&newId){…}
@Floriane不确定为什么需要一个标志,但检查更新。是的,但我需要一个返回true或false的变量布尔值。像newId
因为在我这样做之后如果(member.userId!==userId&&newId){…}
那么,你就可以这样做了:var newId=!一些(id=>member.userId==id);
public listId: string[] = [];
for(let i of this.listId) {
if(member.userId !== this.listId[i]) {
newid = true;
}
else {
newId = false;
}
}