Javascript:在变量中连接对象值



我正在尝试连接"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);

相关内容

  • 没有找到相关文章

最新更新