簡體   English   中英

如何僅通過對象ID從數組中獲取數據

[英]how to get only data by object id from an array

有人可以幫我一些代碼,根據ID從數組中獲取數據,我有一個包含商品明細的數組,我只想從數組中返回所有價格。 這是我的數組:`var prod = [

{
"id": "282",
"product_id": "152737",
"sku": "b175a9ea5f4d9b4766e74079c2bec8",
"prod_name": "PnP Baby Marrows 1kg",
"vendor": "Pick n Pay",
"price": "40.69",
"order_qty": "1"
},
{
"id": "283",
"product_id": "155565",
"sku": "414a1c04ce7fe72269e116d3dd95d3",
"prod_name": "PnP UHT Low Fat Milk 1 Litre x6",
"vendor": "Pick n Pay",
"price": "65.99",
"order_qty": "3"
},
{
"id": "284",
"product_id": "153895",
"sku": "769fca303aa745a43412af20c29e48",
"prod_name": "Plush Dark Furniture Oil 300Ml",
"vendor": "Pick n Pay",
"price": "26.39",
"order_qty": "2"
},
{
"id": "285",
"product_id": "148155",
"sku": "2477f9462d50d0e7b40631c1a347b2",
"prod_name": "Pnp Chicken 4 Thighs And 4 Drumsticks",
"vendor": "Pick n Pay",
"price": "34.86",
"order_qty": "1"
}
]

您應該結合使用map方法(通過傳遞callback函數,該函數應用於給定數組中的每個項目)與destructuring結合使用。

 let arr = [{ "id": "282", "product_id": "152737", "sku": "b175a9ea5f4d9b4766e74079c2bec8", "prod_name": "PnP Baby Marrows 1kg", "vendor": "Pick n Pay", "price": "40.69", "order_qty": "1" }, { "id": "283", "product_id": "155565", "sku": "414a1c04ce7fe72269e116d3dd95d3", "prod_name": "PnP UHT Low Fat Milk 1 Litre x6", "vendor": "Pick n Pay", "price": "65.99", "order_qty": "3" }, { "id": "284", "product_id": "153895", "sku": "769fca303aa745a43412af20c29e48", "prod_name": "Plush Dark Furniture Oil 300Ml", "vendor": "Pick n Pay", "price": "26.39", "order_qty": "2" }, { "id": "285", "product_id": "148155", "sku": "2477f9462d50d0e7b40631c1a347b2", "prod_name": "Pnp Chicken 4 Thighs And 4 Drumsticks", "vendor": "Pick n Pay", "price": "34.86", "order_qty": "1" } ] let prices = arr.map(({price}) => price); console.log(prices); 

使用數組過濾器可以做到這一點。

 var prod = [ { "id": "282", "product_id": "152737", "sku": "b175a9ea5f4d9b4766e74079c2bec8", "prod_name": "PnP Baby Marrows 1kg", "vendor": "Pick n Pay", "price": "40.69", "order_qty": "1" }, { "id": "283", "product_id": "155565", "sku": "414a1c04ce7fe72269e116d3dd95d3", "prod_name": "PnP UHT Low Fat Milk 1 Litre x6", "vendor": "Pick n Pay", "price": "65.99", "order_qty": "3" }, { "id": "284", "product_id": "153895", "sku": "769fca303aa745a43412af20c29e48", "prod_name": "Plush Dark Furniture Oil 300Ml", "vendor": "Pick n Pay", "price": "26.39", "order_qty": "2" }, { "id": "285", "product_id": "148155", "sku": "2477f9462d50d0e7b40631c1a347b2", "prod_name": "Pnp Chicken 4 Thighs And 4 Drumsticks", "vendor": "Pick n Pay", "price": "34.86", "order_qty": "1" } ] const getData = (id) => { return prod.filter( (f) => { return f.id === id }); } console.log(getData("284")); 

希望對您有幫助。

var prod = [
{
"id": "282",
"product_id": "152737",
"sku": "b175a9ea5f4d9b4766e74079c2bec8",
"prod_name": "PnP Baby Marrows 1kg",
"vendor": "Pick n Pay",
"price": "40.69",
"order_qty": "1"
 },
 {
"id": "283",
"product_id": "155565",
"sku": "414a1c04ce7fe72269e116d3dd95d3",
"prod_name": "PnP UHT Low Fat Milk 1 Litre x6",
"vendor": "Pick n Pay",
"price": "65.99",
"order_qty": "3"
},
{
"id": "284",
"product_id": "153895",
"sku": "769fca303aa745a43412af20c29e48",
"prod_name": "Plush Dark Furniture Oil 300Ml",
"vendor": "Pick n Pay",
"price": "26.39",
"order_qty": "2"
},
{
"id": "285",
"product_id": "148155",
"sku": "2477f9462d50d0e7b40631c1a347b2",
"prod_name": "Pnp Chicken 4 Thighs And 4 Drumsticks",
"vendor": "Pick n Pay",
"price": "34.86",
"order_qty": "1"
}
]
var a=[];
prod.forEach((item=>{a.push(item.price)}));

console.log(a);
var prod = [
{
"id": "282",
"product_id": "152737",
"sku": "b175a9ea5f4d9b4766e74079c2bec8",
"prod_name": "PnP Baby Marrows 1kg",
"vendor": "Pick n Pay",
"price": "40.69",
"order_qty": "1"
},
{
"id": "283",
"product_id": "155565",
"sku": "414a1c04ce7fe72269e116d3dd95d3",
"prod_name": "PnP UHT Low Fat Milk 1 Litre x6",
"vendor": "Pick n Pay",
"price": "65.99",
"order_qty": "3"
},
{
"id": "284",
"product_id": "153895",
"sku": "769fca303aa745a43412af20c29e48",
"prod_name": "Plush Dark Furniture Oil 300Ml",
"vendor": "Pick n Pay",
"price": "26.39",
"order_qty": "2"
}
]

let res = prod.map(item => item.price);
console.log(res);

這僅返回價格,但使用map函數以數組形式返回。

您可以使用Array.map來創建一個新數組,可以使用es6語法

見下面的代碼

 var data = [ { "id": "282", "product_id": "152737", "sku": "b175a9ea5f4d9b4766e74079c2bec8", "prod_name": "PnP Baby Marrows 1kg", "vendor": "Pick n Pay", "price": "40.69", "order_qty": "1" }, { "id": "283", "product_id": "155565", "sku": "414a1c04ce7fe72269e116d3dd95d3", "prod_name": "PnP UHT Low Fat Milk 1 Litre x6", "vendor": "Pick n Pay", "price": "65.99", "order_qty": "3" }, { "id": "284", "product_id": "153895", "sku": "769fca303aa745a43412af20c29e48", "prod_name": "Plush Dark Furniture Oil 300Ml", "vendor": "Pick n Pay", "price": "26.39", "order_qty": "2" }, { "id": "285", "product_id": "148155", "sku": "2477f9462d50d0e7b40631c1a347b2", "prod_name": "Pnp Chicken 4 Thighs And 4 Drumsticks", "vendor": "Pick n Pay", "price": "34.86", "order_qty": "1" } ] // es6 var pricesES6 = data.map(o => o.price) // vanilla js var pricesVJS = data.map(function(o){ return o.price }) console.log("prices using es6 =>", pricesES6) console.log("prices using prices vanilla js ", pricesVJS ) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM