我正在尝试连接"seller"输入一个新变量"sellerList"但我没有找到一个好的解决方案。
const data = {
page: {},
product: {
attributes: {
condition: 'used',
offer: {
offer1: {
condition: 'used',
offerID: '1111',
seller: 'Ben',
sellerID: 'abc',
},
offer2: {
condition: 'used',
offerID: '2222',
seller: 'manu',
sellerID: 'def',
},
offer3: {
condition: 'used',
offerID: '3333',
seller: 'Ben',
sellerID: 'abc',
},
},
},
},
};
我发现这篇文章有一个类似的问题,但它不工作在我这边
由于不能在对象上使用map方法,所以我将对象推入一个数组,如下所示:
dataArr = [];
dataArr.push(data);
然后使用以下代码进行连接:
const sellersList = Object.keys(digitalData)
.map((o) => o.seller)
.join(';');
console.log('Offer list :' + sellersList);
但是这返回一个空字符串:"Offer list:;">
所以我的目标是有一个像这样的最终字符串:"ben; menu;ben">
有没有人知道如何安排代码适合我的情况?谢谢你的帮助和你的时间。
根据您共享的数据形状,您可以这样做:
Object.values(data.product.attributes.offer)
.map(offer => offer.seller)
.join(';')
您可以这样做。它确实依赖于您的数据具有具有这些精确键名的特定形状-但不清楚您还可以做什么,因为我不知道您的数据来自何处的细节以及它可能看起来像什么。无论如何,希望这能给你一个开始!
const data = {
page: {},
product: {
attributes: {
condition: "used",
offer: {
offer1: {
condition: "used",
offerID: "1111",
seller: "Ben",
sellerID: "abc",
},
offer2: {
condition: "used",
offerID: "2222",
seller: "manu",
sellerID: "def",
},
offer3: {
condition: "used",
offerID: "3333",
seller: "Ben",
sellerID: "abc",
},
},
},
},
};
const result = Object.values(data.product.attributes.offer).map(offer => offer.seller).join(";");
console.log(result);