场景
我有一个航线数组,里面的项的结构中包含另一个数组对象,我要对actions中的某一项进行操作
javascript
[
{
lng: 120.06494672131818,
lat: 30.858276044948518,
height: "120",
aircraftHeading: 0,
yawRotate: 0,
pitchRotate: 0,
rollRotate: 0,
hangdiansetting: false,
actions: [
{
actionId: 0,
type: 6,
actionActuatorFunc: "takePhoto",
name: "单拍"
},
{
actionId: 1,
type: 11,
actionActuatorFunc: "openAI",
name: "开启AI识别"
},
{
actionId: 2,
type: 8,
actionActuatorFunc: "panoShot",
name: "全景拍照动作"
}
],
showflag: false,
openInputFlag: false
},
{
lng: 120.06788979926445,
lat: 30.860012282995804,
height: "120",
aircraftHeading: 0,
yawRotate: 0,
pitchRotate: 0,
rollRotate: 0,
hangdiansetting: true,
actions: [
{
actionId: 0,
type: 11,
actionActuatorFunc: "openAI",
name: "开启AI识别"
},
{
actionId: 1,
type: 8,
actionActuatorFunc: "panoShot",
name: "全景拍照动作"
}
],
showflag: true,
openInputFlag: false
}
]
我要删除掉actionActuatorFunc为openAI的,重置数据后为下面的样子
javascript
[
{
lng: 120.06494672131818,
lat: 30.858276044948518,
height: "120",
aircraftHeading: 0,
yawRotate: 0,
pitchRotate: 0,
rollRotate: 0,
hangdiansetting: false,
actions: [
{
actionId: 0,
type: 6,
actionActuatorFunc: "takePhoto",
name: "单拍"
},
{
actionId: 1,
type: 8,
actionActuatorFunc: "panoShot",
name: "全景拍照动作"
}
],
showflag: false,
openInputFlag: false
},
{
lng: 120.06788979926445,
lat: 30.860012282995804,
height: "120",
aircraftHeading: 0,
yawRotate: 0,
pitchRotate: 0,
rollRotate: 0,
hangdiansetting: true,
actions: [
{
actionId: 0,
type: 8,
actionActuatorFunc: "panoShot",
name: "全景拍照动作"
}
],
showflag: true,
openInputFlag: false
}
]
我写了一个封装的方法,可自动处理数据
javascript
function processActions(actions) {
return actions
.filter(a => a.actionActuatorFunc !== 'openAI')
.map((a, i) => ({
...a,
actionId: i,
}));
}
这个办法可以在我原有的组装方法上直接添加使用
javascript
let points = this.hangdianList.map(item=>{
item.actions.map(v=>{
let arr = []
...
v.actionActuatorFuncParam = arr;
return v;
})
item.actions = processActions(item.actions);
return item;
})