Я смотрел в Интернете, но я не могу Array.splice
его, используя Array.splice
.
Я храню данные на своей карте следующим образом:
usersPlaying.push({
user: user.id,
current: point
});
Затем, когда они Array.splice
в игре, я хочу удалить их из массива, используя, скорее всего, Array.splice
. Как я могу удалить или сплайсировать значение, которое имеет определенный user.id
как пользователь, поэтому я знаю, какого пользователя удалить?
Вы можете использовать .findIndex()
чтобы найти индекс элемента массива, который вы пытаетесь сопоставить, где возвращаемое значение из вызова функции передается как первый параметр в .splice()
со вторым параметром, установленным в 1
let usersPlaying = [];
let user = {
id: 123
};
let point = 0;
usersPlaying.push({
user: user.id,
current: point
});
console.log(usersPlaying);
usersPlaying.splice(
usersPlaying.findIndex(({user, current}) =>
user === user.id && current === point
)
, 1);
console.log(usersPlaying);
var users = [{user:1, current:10}, {user:2, current:8}, {user:3, current:12}];
function removeUserById( userId) {
return users.filter(function(u) {
return u.user != userId;
})
};
console.log( removeUserById(2));
//ES6
var removeUserByIdES6 = userId => users.filter( u => u.user != userId);
console.log( removeUserByIdES6(2));
// This will remove the user from the original array
var removeUser = userId => users.find( (u,i) => u.user == userId && users.splice(i,1));
removeUser(2);
console.log( users);
Это приведет к удалению пользователя с определенным идентификатором, не затрагивая исходный массив.
.filter()
возвращает новый массив. OP пытается удалить элемент из существующего массива.
splice
, которая удалит элемент из исходного массива
1
если я могу просить?1
- параметрdeleteCount
«Целое число, указывающее количествоdeleteCount
старых элементов массива».