我有一个包含两个信号的对象。 (2)(2) Sheet1_TrainID
和(2)(2) Sheet1_Traintype
。现在,用户可能想查看trainID或Traintype。因此,我实现了此功能:
我的对象看起来像这样:
var myarray = [{
"captions": [
{
"name": "(2)(2) Sheet1_TrainID",
"attributes": {},
"filter": true,
"sort": true
},
{
"name": "(2)(2) Sheet1_Traintype",
"attributes": {},
"filter": true,
"sort": true
}
],
"rows": [
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
}
],
"direction": "vertical",
"attributes": {},
"clickable": false
}]
我的功能如下:
function myfilter (value) {
var afterfilter = myarray.filter(data=>{
console.log(data)
return data['rows'].filter(cells=>{
return cells['cells'].filter(d=>{
return cells.toString().toLowerCase().includes("trainid".toLowerCase())
})
})
})
console.log(afterfilter)
}
myfilter()
现在我该如何修改我的函数,以便它可以进行部分搜索并找到标题和行的相应对象。
因此,在过滤对象之后,我应该只包含(2)(2) Sheet1_TrainID
的数据,而myarray应该如下所示:
var myarray = [{
"captions": [
{
"name": "(2)(2) Sheet1_TrainID",
"attributes": {},
"filter": true,
"sort": true
}],
"rows": [{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
} ]
}, and so on
因此该数组将不包含与(2)(2) Sheet1_Traintype
相关的任何对象
如何修改功能以实现此目的。
var myarray = [{
"captions": [
{
"name": "(2)(2) Sheet1_TrainID",
"attributes": {},
"filter": true,
"sort": true
},
{
"name": "(2)(2) Sheet1_Traintype",
"attributes": {},
"filter": true,
"sort": true
}
],
"rows": [
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
}
],
"direction": "vertical",
"attributes": {},
"clickable": false
}]
function myfilter (value) {
var afterfilter = myarray.filter(data=>{
console.log(data)
return data['rows'].filter(cells=>{
return cells['cells'].filter(d=>{
return cells.toString().toLowerCase().includes("id".toLowerCase())
})
})
})
console.log(afterfilter)
}
myfilter()
答案 0 :(得分:1)
您将不得不分别处理它们...
有些东西会起作用。
var myarray = [{
"captions": [
{
"name": "(2)(2) Sheet1_TrainID",
"attributes": {},
"filter": true,
"sort": true
},
{
"name": "(2)(2) Sheet1_Traintype",
"attributes": {},
"filter": true,
"sort": true
}
],
"rows": [
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1002,
"hiddenValue": 1002,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "ICE",
"hiddenValue": "ICE",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
},
{
"cells": [
{
"value": 1000,
"hiddenValue": 1000,
"type": "data",
"columnName": "(2)(2) Sheet1_TrainID"
},
{
"value": "IC",
"hiddenValue": "IC",
"type": "data",
"columnName": "(2)(2) Sheet1_Traintype"
}
]
}
],
"direction": "vertical",
"attributes": {},
"clickable": false
}]
function myfilter (value) {
return value.map(obj => {
return {captions: (obj.captions.filter(c => c.name.toString().toLowerCase().includes("id".toLowerCase()))), rows: obj.rows.map(row => {
return {cells:row.cells.filter(c => c.columnName.toString().toLowerCase().includes("id".toLowerCase()))}
})}
})
}
console.log(myfilter(myarray))