gpt4 book ai didi

angular - 更新 typescript 中的数组元素值(Angular)

转载 作者:行者123 更新时间:2023-12-02 00:33:24 25 4
gpt4 key购买 nike

我正在使用 Angular 5。我需要更新基于 selectedMobile 的数组值。我的编码:

const mobilelist = [
{ 'key': 'apple', 'name': 'Apple', 'checked': false },
{ 'key': 'sumsung', 'name': 'Sumsung', 'checked': false },
{ 'key': 'oneplus', 'name': 'Oneplus', 'checked': false },
{ 'key': 'mi', 'name': 'Mi', 'checked': false }
];
const selectedMobile = ['apple'];
const newmobilelist: any = [];
if (selectedMobile.length > 0) {
mobilelist.forEach(element => {
if (selectedMobile.find(x => x == element.key) != null) {
newmobilelist.push({ 'key': element.key, 'name': element.name, 'checked': true });
} else {
newmobilelist.push({ 'key': element.key, 'name': element.name, 'checked': false });
}
});
}
console.log(newmobilelist);

在控制台中,我期待这样的结果:

[
{ 'key': 'apple', 'name': 'Apple', 'checked': true },
{ 'key': 'sumsung', 'name': 'Sumsung', 'checked': false },
{ 'key': 'oneplus', 'name': 'Oneplus', 'checked': false },
{ 'key': 'mi', 'name': 'Mi', 'checked': false }
];

但是上面的代码返回如下:

[
{ 'key': 'apple', 'name': 'Apple', 'checked': false },
{ 'key': 'sumsung', 'name': 'Sumsung', 'checked': false },
{ 'key': 'oneplus', 'name': 'Oneplus', 'checked': false },
{ 'key': 'mi', 'name': 'Mi', 'checked': false }
];

我不知道为什么?请帮忙解决...

最佳答案

如前所述,您的代码似乎运行良好。但是,它不必要地复杂,您可以像这样大幅缩小它。

const mobilelist = [
{ 'key': 'apple', 'name': 'Apple', 'checked': false },
{ 'key': 'sumsung', 'name': 'Sumsung', 'checked': false },
{ 'key': 'oneplus', 'name': 'Oneplus', 'checked': false },
{ 'key': 'mi', 'name': 'Mi', 'checked': false }
];
const selectedMobile = ['apple'];
const newmobilelist = mobilelist.map(x => { x.checked = selectedMobile.includes(x.key); return x});
console.log(newmobilelist)

关于angular - 更新 typescript 中的数组元素值(Angular),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com