map这个数组api早就听说了,也知道这个数组是什么用法。如下,他会将原数组中的每一项,经过你传的函数处理之后,返回一个新数组。我以为我会了,其实我并不会...
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
但是当我正在用得到的他时候却想不到了!!!
routers: [,…]
0: {id: 1, agreementId: "agreement12", templateId: "1803", routerId: "3079745547746512903", order: "1",…}
1: {id: 2, agreementId: "agreement12", templateId: "1803", routerId: "3079745547805233157", order: "2",…}
2: {id: 3, agreementId: "agreement12", templateId: "1803", routerId: "3079745547863953414", order: "3",…}
3: {id: 4, agreementId: "agreement12", templateId: "1803", routerId: "3079745547914285064", order: "4",…}
处理成以下形式
routers: [
{agteeId: "agreement12", templateId: "1803"},
{agteeId: "agreement12", templateId: "1803"},
{agteeId: "agreement12", templateId: "1803"},
{agteeId: "agreement12", templateId: "1803"},
]
开始我是这样处理的(想了半天。。。),感觉怪怪的,总感觉有更好的方法。
小程序中代码
let signNameArr = []
let signStatusArr = []
let count = 0
routers.forEach(item => {
signNameArr.push(item.signName)
signStatusArr.push(item.status == 0 ? '未签署' : '已签署')
})
for (let i = 0; i < this.data.steps.length; i++) {
this.setData({
[`steps[${i}].agteeId`]: signNameArr[i],
[`steps[${i}].templateId`]: signStatusArr[i]
})
果然,在经过询问大哥之后,确实有更好的方法可以实现,那就是map方法 。
const steps = routers.map(item => {
return {
agreeId: item.signName + ':',
templateId: item.status == 0 ? '未签署' : '已签署',
inactiveIcon: 'checked',
activeIcon: 'checked',
}
})
就这样搞定了。