简体   繁体   English

如何仅通过对象ID从数组中获取数据

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

can someone help me with some code to get data from array based on the id, i've an array with item detail and i only want to return all the prices from the array. 有人可以帮我一些代码,根据ID从数组中获取数据,我有一个包含商品明细的数组,我只想从数组中返回所有价格。 here is my array:`var prod = [ 这是我的数组:`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"
}
]

You should use map method (by passing a callback provided function which is applied for every item from your given array) in combination with destructuring . 您应该结合使用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); 

Use array filter to do that. 使用数组过滤器可以做到这一点。

 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")); 

hope this helps you. 希望对您有帮助。

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);

This returns just the price but in an array using map function. 这仅返回价格,但使用map函数以数组形式返回。

you can use Array.map which will create a new array, you can use es6 syntax 您可以使用Array.map来创建一个新数组,可以使用es6语法

see the below code 见下面的代码

 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