我有一个数组中包含的 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]) {
newid = true;
}
else {
newId = false;
}
}
我不知道该怎么做.我提出的解决方案不起作用
试试这个
if(listId.indexOf(member.userId) !== -1)
{
newId = false;
}else
{
newid = true;
}
不要在其他return false
,一旦确定项目已处理,就可以在 for 循环之外进行。
for(let i of listId) {
if(member.userId !== listId[i]) {
return true;
}
}
return false;
否则,除非第一项的检查return true
,否则您的方法将始终return false
而不检查其余项,因为它没有机会迭代和处理其余项。
是的,但我需要一个返回真或假的变量布尔值。喜欢新ID 因为在我做完之后
if(member.userId !== userId && newId) { ... }
使用标志
var flag = false;
for(let i of listId) {
if(member.userId !== listId[i]) {
flag = true;
break;
}
}
return flag;
这也行得通
return !listId.some(id => member.userId === id);
public listId: string[] = [];
for(let i of this.listId) {
if(member.userId !== this.listId[i]) {
newid = true;
}
else {
newId = false;
}
}
您的数组未在 foreach 循环外部访问。您需要此运算符来访问整个值。希望对您有所帮助。