[英]How to separate a json data in javascript
我對js很陌生,現在我有一個json數據,該數據通過后端傳遞到我的js文件中。 json數據如下所示:
{
Vivo:{Time:[20190610,20190611],Price:[2000,2000]},
Huawei:{Time:[20190610,20190611],Price:[3000,3000]},
Maxvalue:3000
}
我得到的JSON數據是通過以下代碼:
fetch('/Tmall') //Tmall is the url i go to fetch data
.then(function(response) {
return response.json();
}).then(function(Data) {
...
}
接下來,我將處理要呈現在前端的數據,但是我不知道如何將數據分配給兩個不同的參數:
Cellphone =
{
Vivo:{Time:[20190610,20190611],Price:[2000,2000]},
Huawei:{Time:[20190610,20190611],Price:[3000,3000]}
}
Max = {Maxvalue:3000}
這是我嘗試執行的操作,我使用了if-是將數據與原始數據分開的鍵,但是它沒有用
var Cellphone = {}
for (var i = 0; i < Data.length; i++)
{
if (Data.key[i] != 'Maxvalue'){
Cellphone.push(Data[i])
}
}
只需提取Maxvalue
屬性,然后將其他屬性分配給Cellphone
。 通過銷毀和傳播這真的很簡單:
const data = { Vivo: { Time: [20190610, 20190611], Price: [2000, 2000] }, Huawei: { Time: [20190610, 20190611], Price: [3000, 3000] }, Maxvalue: 3000 }; const { Maxvalue: Max, ...Cellphone } = data; console.log("Max:", Max); console.log("Cellphone:", Cellphone);
.as-console-wrapper { max-height: 100% !important; top: auto; }
您可以將Object.keys()與Array.prototype.filter()和Array.prototype.map()結合使用。
碼:
// Your `Data` response... const Data = {Vivo:{Time:[20190610,20190611],Price:[2000,2000]},Huawei:{Time:[20190610,20190611],Price:[3000,3000]},Maxvalue:3000}; // Logic const Cellphone = Object.keys(Data) .filter(k => k !== 'Maxvalue') .map(k => ({ [k]: Data[k] })); const Max = { Maxvalue: Data.Maxvalue }; console.log('Cellphone:', Cellphone); console.log('Max:', Max);
您可以單獨選擇最大值,將其保存到變量中,然后將其從對象中刪除。 這將使您可以將所有手機分配給變量,即使它們的名稱發生了變化。 例如;
let data = { Vivo:{Time:[20190610,20190611],Price:[2000,2000]}, Huawei:{Time:[20190610,20190611],Price:[3000,3000]}, Maxvalue:3000 } // save the maxValue key let maxValue = data.Maxvalue; // then remove it from the object delete(data.Maxvalue); // the remaining keys are cellphones let cellPhones = data; console.log(maxValue, cellPhones);
在將Data
設置為參數的函數中,執行以下操作
let Cellphone = {
Vivo: Data.Vivo,
Huawei: Data.Huawei
};
let Max = Data.Maxvalue;
以下代碼可以解決您的問題
var phones = {};
var max;
Object.entries(data).forEach(function (entry) {
if (entry[0] == "Maxvalue") {
max = entry[1];
}
else {
phones[entry[0]] = entry[1];
}
});
console.log("Phones: ", phones);
console.log("Max: ", max)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.