Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据数组中某个键的条件,从数组中获取单个对象_Javascript_Arrays_Ecmascript 6_Javascript Objects - Fatal编程技术网

Javascript 根据数组中某个键的条件,从数组中获取单个对象

Javascript 根据数组中某个键的条件,从数组中获取单个对象,javascript,arrays,ecmascript-6,javascript-objects,Javascript,Arrays,Ecmascript 6,Javascript Objects,我有一个对象数组,我只想获得数量最大的对象,在本例中是id为4的对象,并试图使用javascript的filter属性,但我没有实现它,否则我能实现吗 [ { "id": 1, "quantity": 10, "price": 80 }, { "id": 2, "quantity": 30, "price": 170 }, { "id": 3, "quantity": 50, "price": 230

我有一个对象数组,我只想获得数量最大的对象,在本例中是id为4的对象,并试图使用javascript的filter属性,但我没有实现它,否则我能实现吗

[
  {
    "id": 1,
    "quantity": 10,
    "price": 80
  },
  {
    "id": 2,
    "quantity": 30,
    "price": 170
  },
  {
    "id": 3,
    "quantity": 50,
    "price": 230
  },
  {
    "id": 4,
    "quantity": 100,
    "price": 100
  }
]

这将映射整个JSON对象数组,并跟踪数量最高的对象的索引

let indexOfHighest = 1
arrayOfObject.map((obj,index) = {
   if(obj.quantity > arrayOfObject[indexOfHighest].quantity)
   {
     indexOfHighest = index
   }

})

这将映射整个JSON对象数组,并跟踪数量最高的对象的索引

let indexOfHighest = 1
arrayOfObject.map((obj,index) = {
   if(obj.quantity > arrayOfObject[indexOfHighest].quantity)
   {
     indexOfHighest = index
   }

})
在这种情况下,正确的选择是:

const most = array.reduce((a, b) => a.quantity > b.quantity ? a : b);
在这种情况下,正确的选择是:

const most = array.reduce((a, b) => a.quantity > b.quantity ? a : b);

您可以按
数量对数组进行排序,然后从排序后的数组中提取第一项

var a = [{
    "id": 1,
    "quantity": 10,
    "price": 80
}, {
    "id": 2,
    "quantity": 30,
    "price": 170
}, {
    "id": 3,
    "quantity": 50,
    "price": 230
}, {
    "id": 4,
    "quantity": 100,
    "price": 100
}]

a.sort((obj1, obj2)=> obj2.quantity - obj1.quantity)[0]
// {id: 4, quantity: 100, price: 100}

您可以按
数量对数组进行排序,然后从排序后的数组中提取第一项

var a = [{
    "id": 1,
    "quantity": 10,
    "price": 80
}, {
    "id": 2,
    "quantity": 30,
    "price": 170
}, {
    "id": 3,
    "quantity": 50,
    "price": 230
}, {
    "id": 4,
    "quantity": 100,
    "price": 100
}]

a.sort((obj1, obj2)=> obj2.quantity - obj1.quantity)[0]
// {id: 4, quantity: 100, price: 100}

只是提供另一个答案-使用库有点过火


这将使用数学库查找最大数量,然后在数组中查找具有该数量的对象。不是最好的答案,而是解决问题的另一种方式:)

只是提供了另一个答案-使用库有点过火


这将使用数学库查找最大数量,然后在数组中查找具有该数量的对象。这不是最好的答案,而是解决问题的另一种方式:)

@certainPerformance你如何
找到最大的数量?@certainPerformance你如何
找到最大的数量?虽然这个代码片段可能是解决方案,但确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。虽然此代码片段可能是解决方案,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。