Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
327 views
in Technique[技术] by (71.8m points)

如何优雅地写for if嵌套

业务中经常遇到的问题,从后台返回某一个字段数据为id值,前端需要展示为汉字(name),因此需要向后台请求获得一个包含key为id与name的对象数组,然后在数组中遍历获取id对应的name值

我处理过的方式一般有两种
1.

for(let item of Array) {
    if(item.id === id) {
        return item.name
    }
}

第一种方式是我通常用的,从最开始的
for(var i = 0; i < Array.length; i++)
慢慢到
for(let i in Array)
最后到现在的
for(let i of Array)
虽然也已经越来越简洁了,但是总感觉缺少一份优雅。
第二种使用了map方法,在我第一次见到的时候颇为惊艳,有一种代码还能这么写的感叹。
但是在炫技性质的几次尝试之后发现最后还要把数组处理成字符串返回,
反而也有一种华而不实的感觉。

大家有什么简洁而优雅的方式处理这样的循环吗?
类似的还有多重for循环嵌套的优化


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

遍历数组取值,那就用数组提供的方法,筛选的话用filter比较合适。

[{}].filter(res=>{return res.id == id})[0].name

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.6k users

...