1

I have an array with different values (in JSON structure), I need to get one item on the array based on another value.

This is what I did so far:

var orders= [{
    "id": 1,
    "order": "11"
  },
  {
    "id": 2,
    "order": "22"
  },
  {
    "id": 3,
    "order": "33"
  }];
var order = $.grep(orders, function (e) { return e.order === '22'; })[0];
var orderID = order ? order.id : 0;

Is this the simplest way to do it?

user3378165
  • 6,546
  • 17
  • 62
  • 101
  • 2
    `var myOrder = orders.find(o => o === order)` – Weedoze Aug 18 '17 at 07:07
  • 2
    What kind of browser support do you need? ES6 introduces `find` for `var order = orders.find(e => e.order === order)`. – Ry- Aug 18 '17 at 07:08
  • Possible duplicate of [Javascript: How to filter object array based on attributes?](https://stackoverflow.com/questions/2722159/javascript-how-to-filter-object-array-based-on-attributes) – Dr. X Aug 18 '17 at 07:15
  • @Weedoze,Ryan, Thank you for your answers. – user3378165 Aug 18 '17 at 07:20

1 Answers1

4

With ES6, you could use Array#find

var orders= [{ id: 1, order: "11" }, { id: 2, order: "22" }, { id: 3, order: "33" }],
    order = orders.find(o => o.order === "22"),
    orderID = order ? order.id : 0;

console.log(orderID);
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392