根据 属性 删除一个对象
Delete an object based on property
我有两个数组。
_ARRAY_OF_FUTURE_USERS = []; // Array of objects with a property useruid
pastLikedUsersArray = []; // Array of strings
如果其中一个对象的 属性 值在过去的 LikedUsersArray 字符串中,我想从 _ARRAY_OF_FUTURE_USERS 中删除一个对象。
我有一个 for 循环遍历两个数组的长度,然后遍历下面的拼接方法。
_ARRAY_OF_FUTURE_USERS.splice(pastLikedUsersArray[j], 1);
但是,我认为它是将对象与字符串进行比较,因此不会删除。我怎样才能达到我想要的?
我也试过:
_ARRAY_OF_FUTURE_USERS[i].useruid.splice(pastLikedUsersArray[j], 1);
这没用
useruid 是 _ARRAY_OF_FUTURE_USERS 中的属性之一,值是字符串,类似的字符串可以在另一个数组中。
我收到一条错误消息,说它不是一个函数。
其实挖多了发现删的不是删的,很奇怪
试试这个:
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;
});
我有两个数组。
_ARRAY_OF_FUTURE_USERS = []; // Array of objects with a property useruid
pastLikedUsersArray = []; // Array of strings
如果其中一个对象的 属性 值在过去的 LikedUsersArray 字符串中,我想从 _ARRAY_OF_FUTURE_USERS 中删除一个对象。
我有一个 for 循环遍历两个数组的长度,然后遍历下面的拼接方法。
_ARRAY_OF_FUTURE_USERS.splice(pastLikedUsersArray[j], 1);
但是,我认为它是将对象与字符串进行比较,因此不会删除。我怎样才能达到我想要的?
我也试过:
_ARRAY_OF_FUTURE_USERS[i].useruid.splice(pastLikedUsersArray[j], 1);
这没用
useruid 是 _ARRAY_OF_FUTURE_USERS 中的属性之一,值是字符串,类似的字符串可以在另一个数组中。 我收到一条错误消息,说它不是一个函数。
其实挖多了发现删的不是删的,很奇怪
试试这个:
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;
});