基于属性删除对象
Delete an object based on property
我有两个数组。
_ARRAY_OF_FUTURE_USERS = []; // Array of objects with a property useruid
pastLikedUsersArray = []; // Array of strings
我想从_ARRAY_OF_FUTURE_USERS中删除一个对象,如果其中一个对象具有在pastLikedUsersArray字符串中的属性值。
我有一个for循环,遍历两个数组的长度,然后使用下面的splice方法。
_ARRAY_OF_FUTURE_USERS.splice(pastLikedUsersArray[j], 1);
然而,我认为它是在比较一个对象和一个字符串,因此没有删除。我怎样才能实现我想要的?
我也试过:
_ARRAY_OF_FUTURE_USERS[i].useruid.splice(pastLikedUsersArray[j], 1);
这行不通
useruid是_ARRAY_OF_FUTURE_USERS中的一个属性,其值是字符串,类似的值可以在另一个数组中。我得到一个错误,说它不是一个函数。
事实上,在进一步挖掘后,它似乎是在删除一个而不是正确的,这很奇怪
try this:
for (var i=0; i<_ARRAY_OF_FUTURE_USERS.length; i++) {
if (pastLikedUsersArray.indexOf(_ARRAY_OF_FUTURE_USERS[i].useruid) != -1) {
_ARRAY_OF_FUTURE_USERS.splice(i, 1);
i--;
}
}
或使用过滤器:
_ARRAY_OF_FUTURE_USERS = _ARRAY_OF_FUTURE_USERS.filter(function(user) {
return pastLikedUsersArray.indexOf(user.useruid) != -1;
});
相关文章:
- 解析JSON并从中删除对象会出错
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 正在从列表中删除对象
- 删除对象时终止setInterval
- 在JavaScript中高效地删除对象
- 使用javascript(ajax,jquery?)从表中删除对象(用户等)
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- 如何正确地从数组中删除对象
- 捕捉.svg — 单击其中一个元素时删除对象
- 如何删除对象数组中的对象:jquery
- 下划线.js,根据键值删除对象数组中的重复项
- 如何在Immutable中从数组中删除对象
- 删除对象属性在执行删除操作之前生效
- 使用indexOf从列表中删除对象
- 从数组中删除对象
- 如何使用.bind(this)删除对象的事件侦听器
- 正在创建事件侦听器以从本地存储中删除对象
- 如何通过引用(javascript)从数组中删除对象
- 如何按条件删除对象中的对象