下午好,有一个数据数组,我需要将此数据输出到 FEname但将其发送到 BE code。codeBE 上的相同可能需要几个:
[
{
"name": "RAILCARD",
"code": "HMF"
},
{
"name": "16-25 RAILCARD",
"code": "YNG"
},
{
"name": "NETWORK RAILCARD",
"code": "NEW"
},
{
"name": "SENIOR RAILCARD",
"code": "SRN"
},
{
"name": "ANNUAL GOLD CARD",
"code": "NGC"
},
{
"name": "JCP DISCOUNT CARD",
"code": "JCP"
},
{
"name": "FAMILY & FRIENDS RCD",
"code": "FAM"
},
{
"name": "DISABLED ADULT",
"code": "DIS"
},
{
"name": "DISABLED CHILD",
"code": "DIC"
},
{
"name": "TWO TOGETHER R/CARD",
"code": "2TR"
}
]
这是我的状态:
constructor(props) {
super(props);
this.state = {
railcards: railcards.map((key) => key.name),
chipData: [],
chipCode: [],
};
this.search = this.search.bind(this);
}
添加脚本+发送到BE,在这里我们在我们的数据中找到一个字段name并将其写入一个单独的状态code:
async search() {
let chipsFound = railcards.find((e) => {
let result;
self.state.chipData.map((key) => key.label).forEach(function(item, index) {
result = e.name[index] === item[index];
});
return result;
});
let chips = chipsFound ? chipsFound.code : undefined;
self.setState({chipCode: self.state.chipCode.concat(chips)})
}
以下是删除脚本:
handleRequestDelete = (key) => {
this.chipData = this.state.chipData;
const chipToDelete = this.chipData.map((chip) => chip.key).indexOf(key);
this.chipData.splice(chipToDelete, 1);
this.setState({
chipData: this.chipData,
});
this.search()
};
帮助删除,如果有更好的解决方案,添加到数组中,也告诉我:-)
我注意到一个小问题,例如:如果我们从数组 c 中删除一个元素key: 3并尝试再次添加一个元素,那么该元素就会出现重复key. (即添加与具有相同键的数组的最后一个元素相同的元素)
我这样解决了我的问题(对谁有用),你可以提供你的选择,我只会很高兴:
用我们需要的键添加
name到的功能:statechipData用我们需要的键添加
code到的功能:statechipCodestatechipCode从两个和chipData按键中删除功能: