如何检查特定的JSON值是否与给定数组中的值非常匹配?然后将JSON值替换为数组值



我有一组批发商(例如(:

const wholesalers = [
"B536 - T QUALITY LTD",
];

我有一个JSON对象数组(示例(:

{
'Preferred Wholesaler': 'T-Quality'
}, 
{
'Preferred Wholesaler': 'T Quality'
},

如何将首选批发商JSON值与数组中的某个值相匹配?然后使用数组中的值更新JSON对象,如下所示:"Preferred Wholesaler":"B536-T QUALITY LTD"。

以下是我目前所拥有的:

// Ignores the first 7 characters of the wholesaler
// Removes the " LTD" from the end:
var newWholesalers = wholesalers.map(wholesaler => {
return wholesaler.substring(7).replace(" LTD", "")
});
// JSON Data
var newRecords = data.map(record => {
record["Preferred Wholesaler"] = record["Preferred Wholesaler"].toUpperCase()
// Returns true if the preferred wholesaler is in the array
// false if not
if (newWholesalers.includes(record["Preferred Wholesaler"])) {
return {
...record,
["Preferred Wholesaler"]: 'True'
}
} else {
return {
...record,
["Preferred Wholesaler"]: 'False'
}
}
});

如何让includes((函数返回与其匹配的值,而不是true/false??

也许这可以帮助您获得一些方向。。。

const wholesalers = [
"B536 - T QUALITY LTD",
"B700 - BEST QUALITY cc",
];
var myObject = [
{
'Preferred Wholesaler': 'T-Quality'
},
{
'Preferred Wholesaler': 'T Quality'
},
]
myObject.forEach(function(item, index) {
wholesalers.forEach(function(wholesaler, index) {
if (wholesaler.replace(/-/g, ' ').toLowerCase().includes(item['Preferred Wholesaler'].replace(/-/g, ' ').toLowerCase())) {
item['Preferred Wholesaler'] = wholesaler
}
});

});
console.log(myObject);

最新更新