我有下面給出的格式的陣列資料
const data= [
{
name: "productname",
id: "1356",
price: "0.00",
category: "Health",
position: "1",
list: "New Products",
stocklevel: "20",
brand: "Health"
},
{
name: "productname2",
id: "5263",
price: "0",
category: "Hair",
position: "2",
list: "New Products",
stocklevel: "",
brand: "Hair"
}]
從這個資料中,我只想要每個產品的產品名稱,產品 1 和產品 2 的差異。例如,我想要以逗號分隔值的字串格式的資料,如下所示:-
product1name: "productname",
product2name: "productname2",
...
我嘗試使用 map 函式,但無法從整個陣列資料中僅獲取一兩個值。這是我嘗試過的代碼
var dataByComa = '';
var Values = data
.map(function (p, i) {
return Object.keys(data[i]).map(function (k) {
return "prod" " " ": " JSON.stringify(data[i][k]);
});
}).map(function (v) {
return v.join(",\n"); });
var commaValues = Values.join(",\n");
return commaValues;
使用此代碼,我可以將陣列資料轉換為逗號分隔值,但我只想要產品名稱。
注意:- 不使用模板模板文字。
uj5u.com熱心網友回復:
編輯:我更清楚OP現在正在尋找什么 - 這是一個滿足所有要求的答案
let commaValues = ""
for (let i = 0; i < data.length; i ) {
commaValues = ("product" (i 1) "name: " "\"" data[i]["name"] "\", ")
}
// result: 'product1name: "productname", product2name: "productname2", '
uj5u.com熱心網友回復:
你可以使用reduce來做到這一點。它將一個函式作為第一個引數,將一個初始值作為第二個引數(這里是一個空物件 {})。變數“previous”跟蹤(最初為空)新物件的當前狀態,而函式將“data”陣列中每個元素的名稱添加到物件中。
var result = data.reduce((previous, element) => {
previous[element.name] = element.name;
return previous;
}, {})
編輯: 正如我所意識到的,您實際上想要一個字串作為結果。在這種情況下,您可以這樣做:
var result = data.reduce((previous, element) => {
previous[element.name] = element.name;
return previous;
}, {})
var csvWithBrackets = JSON.stringify(result)
var csv = csvWithBrackets.substring(1, csvWithBrackets.length-1)
然而,來自 Pzutils 的答案似乎更緊湊。
uj5u.com熱心網友回復:
您可以遍歷資料并將值分配給外部變數,如下所示:
let finalData = {}
data.forEach((item, index) => {
finalData[`product${index 1}name`] = item.name
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428748.html
標籤:javascript 节点.js 数组 细绳 网络
