鍍金池/ 問答/HTML/ 怎么優(yōu)化這段代碼

怎么優(yōu)化這段代碼

clipboard.png
如圖,對(duì)v這個(gè)數(shù)組進(jìn)行了map遍歷然后得到新的2個(gè)數(shù)組:


我想的是 這2個(gè)map都是對(duì)同一個(gè)數(shù)組進(jìn)行迭代,有沒有辦法在一次map就直接得到想要的2個(gè)數(shù)組?。。?!

回答
編輯回答
旖襯
let arr1 = [], arr2 = []
v.map(o => arr1.push(o.num) && arr2.push(o.Pre))

那我只能想出這種辦法了。


map 操作就是對(duì)一個(gè)集合里的每個(gè)元素進(jìn)行映射操作,并把這些映射出來的新元素組合成一個(gè)數(shù)組,怎么返回兩個(gè)數(shù)組出來。

另外,在函數(shù)體里只有 return 時(shí),可以省略 return

v.map(_v => `第${intToChinese(_v.num)}課時(shí)`);
2017年3月7日 06:10
編輯回答
念初
//版本1
let KnowledgeTreeName = [],
    data = [];
v.forEach(_v => {
    KnowledgeTreeName.push(`第${intToChinese(_v.num)}課時(shí)`);
    data.push(_v.Pre);
});
this.state.KnowledgeTreeName = KnowledgeTreeName;
this.state.data = data;
//版本2
let this.state.KnowledgeTreeName = [],
    this.state.data = [];
v.forEach.bind(this, function(_v) {
    this.state.KnowledgeTreeName.push(`第${intToChinese(_v.num)}課時(shí)`);
    this.state.data.push(_v.Pre);
});
2017年8月14日 16:49