我有一组批发商(例如(:
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);