gpt4 book ai didi

javascript - JS/TS 最聪明的方法如何遍历对象数组并进行一些更改

转载 作者:行者123 更新时间:2023-11-30 20:06:28 25 4
gpt4 key购买 nike

有没有一种最聪明的方法可以达到相同的结果?

简要说明:

 routes = [
{ name: 'vehicle', activated: true},
{ name: 'userassignment', activated: true},
{ name: 'relations', activated: true},
{ name: 'journeys', activated: true},
{ name: 'expenses', activated: true}

];

任务 - 创建一个接受上述数组的函数,并且:

  1. 将所有成员属性“activated”更改为 false
  2. 将一个特定的“选定”成员设置为 true(基于其“名称”)
  3. 如果“chosen”是“journeys”或“expenses”,将它们设置为 true 但同时设置“relations”成员为真

我像下面的代码那样做了,但我的前辈希望它更聪明。

highlightActiveRoute(array: any[], chosen: string) {
array.forEach(element => {
element.activated = false;
if (element.name === chosen) {
element.activated = true;
if (element.name === 'journeys' || element.name === 'expenses') {
this.routes[2].activated = true;
}
}
});

}

我不确定我是否可以把它写得更聪明,但也许你可以 :) 非常感谢你提供的任何灵感。

最佳答案

仅使用 ArrayIterators(ECMAScript 2015)。使用以下代码,您不必担心数组中的任何元素是否会更改其位置:

highlightActiveRoute(array: any[], chosen: string) {
array.forEach(element=>{element.activated=false});
if(['journeys','expenses'].includes(chosen))
{
array[array.findIndex(element=>{return element.name==='relations'})].activated = true;
array[array.findIndex(element=>{return element.name==='expenses'})].activated = true;
array[array.findIndex(element=>{return element.name==='journeys'})].activated = true;
}
else
{
array[array.findIndex(element=>{return element.name===chosen})].activated = true;
}

return array;
}

关于javascript - JS/TS 最聪明的方法如何遍历对象数组并进行一些更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52891894/

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