#javascript #arrays #typescript
Вопрос:
У меня есть следующий массив:
let tblUsers = [
{ id: 101, user: 'user1', password: 'password1', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Bob', lastName: 'Marley' },
{ id: 102, user: 'user2', password: 'password2', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Inactive', firstName: 'Bill', lastName: 'Murray' },
{ id: 103, user: 'user3', password: 'password3', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Jeniffer', lastName: 'Connelly' },
];
Для идентификатора 102, как бы я обновил некоторые или все значения ключей для этого объекта внутри массива?
Комментарии:
1. Если мутация в порядке, используйте
.find()
, чтобы найти по идентификатору и сохранить ссылку на нее, а затем обновить.2. О, мой бог…
find()
и ссылка. Конечно. Потратил так много времени на обдумывание названия вопроса, что упустил из виду мелочи.
Ответ №1:
Вы можете использовать Array.find
для поиска первого объекта в массиве, который соответствует условию, которое в нашем случае заключается в том, равно ли id
свойство 103
:
let tblUsers = [
{ id: 101, user: 'user1', password: 'password1', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Bob', lastName: 'Marley' },
{ id: 102, user: 'user2', password: 'password2', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Inactive', firstName: 'Bill', lastName: 'Murray' },
{ id: 103, user: 'user3', password: 'password3', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Jeniffer', lastName: 'Connelly' },
];
const user3 = tblUsers.find(user => user.id == 103)
user3.status = 'Inactive';
console.log(tblUsers)
Комментарии:
1. Такая чистая. Спасибо, Призрак. Вы ответили первым.
2. @suchislife Нет проблем. Вы должны принять ответ, который поможет вам больше всего.
3. Ага. Вы ответили так быстро, что таймер все еще работает. осталось 2 минуты.
Ответ №2:
let tblUsers = [
{ id: 101, user: 'user1', password: 'password1', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Bob', lastName: 'Marley' },
{ id: 102, user: 'user2', password: 'password2', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Inactive', firstName: 'Bill', lastName: 'Murray' },
{ id: 103, user: 'user3', password: 'password3', created: '2021-01-01 23:59:59', modified: '2021-01-01 23:59:59', status: 'Active', firstName: 'Jeniffer', lastName: 'Connelly' },
];
const objectToChange = tblUsers.find((obj) => obj.id === 102);
objectToChange.user = 'user111';
console.log(tblUsers);