let sarr = [];
let tarr = [{
"code": "isCurr",
"name": "外币核算",
"width": 150
}, {
"code": "bussDate",
"name": "往来日期",
"width": 150
}, {
"code": "expiryDate",
"name": "到期日",
"width": 150
}]
tarr.forEach((item)=>{
if(item.code === 'isCurr'){
sarr.push({
name: '币种',
code: 'curCodeData',
type: 'select'
});
}
if(item.code=='bussDate'){
if(!sarr.includes({
name: '往来日期',
code: 'bussDate',
type: 'bussDatePicker'
})){
sarr.push({
name: '往来日期',
code: 'bussDate',
type: 'bussDatePicker'
});
}
}
if(item.code=='expiryDate'){
if(!sarr.includes({
name: '到期日',
code: 'expiryDate',
type: 'expiryDatePicker'
})){
sarr.push({
name: '到期日',
code: 'expiryDate',
type: 'expiryDatePicker'
});
}
}
if(item.code=='bussDate'||item.code=='expiryDate'){
console.log(sarr)
if(!sarr.includes({
name: '摘要',
code: 'summary',
type: 'summaryinput'
})){
console.log('==$$$')
sarr.push({
name: '摘要',
code: 'summary',
type: 'summaryinput'
});
}
}
})
console.log(srr)
如上述代码所示 循环一个对象数组 根据内部条件得到最后的新数组srr 但是按照此逻辑最后总是多得到一个摘要 结果如下
0
:
{name: "币种", code: "curCodeData", type: "select"}
1
:
{name: "往来日期", code: "bussDate", type: "bussDatePicker"}
2
:
{name: "摘要", code: "summary", type: "summaryinput"}
3
:
{name: "到期日", code: "expiryDate", type: "expiryDatePicker"}
4
:
{name: "摘要", code: "summary", type: "summaryinput"}
因为业务需求和这是在别人代码上面写的 也无法之后使用数组去重解决问题,求方法
ps:正确的格式要的是没有第三个带有摘要的元素,只要最后一个,也就是应该是按照顺序push进去的