Дано: в массиве имеется user object
. Каждый user
имеет name
и password
. У кого в имени найдется буква "r" удалить из данного массива и перенести в другой массив. Маленький пример
var a = [{
name: "Rixter",
password: "ksakkd12ks"
}, {
name: "Rudolf",
password: "asfsa2sfaa"
}, {
name: "Masha",
password: asfefds12
}]
Нужно удалить из данного массива пользователя Rixter
и Rudolf
и перенести в другой пустой массив
Воспользуйтесь методом filter
var a = [
{name: "Rixter",
password: "ksakkd12ks"},
{name: "Rudolf",
password: "asfsa2sfaa"
},
{name: "Masha",
password: "asfefds12"},
];
var another_array = a.filter(user => user.name.toLowerCase().includes('r'));
var a = a.filter(user => !user.name.toLowerCase().includes('r'));
console.log(a, another_array);
Splice:
var a = [
{name: "Rixter",
password: "ksakkd12ks"},
{name: "Rudolf",
password: "asfsa2sfaa"
},
{name: "Masha",
password: "asfefds12"},
];
var r_index, r_array = [];
while(-1 != (r_index = a.findIndex(user => user.name.toLowerCase().includes('r'))))
r_array.push(a.splice(r_index,1)[0]);
console.log(a, '\n\n', r_array);
Модификация ответа @Darth с единственным вызовом filter()
:
var a = [{
name: "Rixter",
password: "ksakkd12ks"
},
{
name: "Rudolf",
password: "asfsa2sfaa"
},
{
name: "Masha",
password: "asfefds12"
},
];
let another_array = [];
a = a.filter(user => {
if (user.name.toLowerCase().includes('r')) {
another_array.push(user);
return false;
}
return true;
});
console.log(a, another_array);
Если порядок следования пользователей в новом массиве не имеет значения и нужно реализовать именно через splice, то вот ещё один вариант:
let a = [
{name: "Rixter", password: "ksakkd12ks"},
{name: "Rudolf", password: "asfsa2sfaa"},
{name: "Masha", password: "asfefds12"}
];
let b = [];
for (let i = a.length - 1, r = /r/i; i >= 0; i--) {
r.test(a[i].name) && (b = b.concat(a.splice(i, 1)));
}
console.log(a);
console.log(b);
Если порядок важен, то надо только поменять вставку их в массиве - в начало, а не в конец.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пытаюсь получить id конференции, с которой был написан репортНо мне постоянно возвращает в тексте "1", для любой конференции
Im trying to create my first spa in reactI read that redirect in spa can be done with component