如果我有以下对象数组:
[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]
是否有一种方法可以在数组中循环,以检查特定用户名值是否已经存在,如果它什么也不做,但如果它不做,则使用所述用户名(和新ID)向数组中添加一个新对象?
谢谢!
检查现有用户名非常简单:
var arr = [{ id: 1, username: 'fred' },
{ id: 2, username: 'bill'},
{ id: 3, username: 'ted' }];
function userExists(username) {
return arr.some(function(el) {
return el.username === username;
});
}
console.log(userExists('fred')); // true
console.log(userExists('bred')); // false
但当你必须向这个数组中添加一个新用户时,该怎么做并不那么明显。最简单的解决方法是,只需使用id
等于数组的新元素。长度1
:
function addUser(username) {
if (userExists(username)) {
return false;
}
arr.push({ id: arr.length + 1, username: username });
return true;
}
addUser('fred'); // false
addUser('bred'); // true, user `bred` added
它将保证IDs的唯一性,但如果将某些元素从其末端移除,则会使该数组看起来有点奇怪。
这个小片段对我有用...
const arrayOfObject = [{ id: 1, name: 'john' }, {id: 2, name: 'max'}];
const checkUsername = obj => obj.name === 'max';
console.log(arrayOfObject.some(checkUsername))
如果你有像['john','marsh']
这样的元素数组,那么我们可以这样做
const checkUsername = element => element == 'john';
console.log(arrayOfObject.some(checkUsername))
我假设id
s在这里是唯一的。一些
是检查数组中事物存在的一个很好的函数:
const arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
function add(arr, name) {
const { length } = arr;
const id = length + 1;
const found = arr.some(el => el.username === name);
if (!found) arr.push({ id, username: name });
return arr;
}
console.log(add(arr, 'ted'));
问题内容: 我试图检查对象数组中是否存在特定项目(属性值),但找不到任何解决方案。请让我知道,我在这里想念的是什么。 问题答案: 您可以像这样过滤数组: 它将返回匹配闭包中指定条件的元素数组-在上述情况下,它将返回包含所有属性等于1的元素的数组。 由于您需要布尔结果,因此只需执行以下检查: 如果过滤后的数组至少包含一个元素,则为true
问题内容: 我有下一个JSON: 知道JSON对象中是否存在“ dog”值的最佳方法是什么? 谢谢。 解决方案1 解决方案2(JQuery) 解决方案3(使用some()方法) 问题答案: JSON变量引用具有一个称为“名称”的属性的对象数组。我不知道最好的方法,但这就是我的工作吗?
null null null
我到处都找不到一个类似于我的问题的答案,在Java中。我使用的是数组,而不是数组列表。 每次在我的咖啡店下新的订单时,咖啡店必须添加到客户已经访问过的商店数组中,但它应该只出现一次,即使他们访问过两次说‘星巴克’。 我有一个main文件,一个CoffeeShop类,和一个Customer类,这三个文件都在OOP中协同工作。 我认为“this”应该是调用“.newOrder()”的特定咖啡店,但大体
我试图让用户输入日期来存储它,但我似乎无法将其记录下来。 当我试图将创建的对象添加到数组时,问题就来了。 以下是另一个类,以供setDay,setMonth,setyear参考:public class OurDate{private int day;private int month;private int year;
我试图检查我收到的新数据对我持有的对象,我试图找出的是,如果他们的关键字的对象,我正在发送匹配的任何关键字的对象,我目前有。 所以我抓着一个物体就像 然后我收到一个单件物品 我想检查这个对象与对象数组(myObj),看看是否有任何东西与关键字“三”在里面(我不关心值,只是关键字匹配),所以我可以把它弹出到一个if语句分开就像- 我使用下划线。谢谢 编辑:对不起,这不清楚,我编辑它是为了澄清- 我握