jQuery添加数组值

时间:2017-11-01 20:15:46

标签: javascript jquery json

我在下面给出了一个json

0 : {car_rental_id: "6007", sharing_schedule: "9:00 AM", booked_cars: '1', woo_order_id: "6421", woo_status: "on-hold" }
1 : {car_rental_id: "6007", sharing_schedule: "9:00 AM", booked_cars: '3', woo_order_id: "6424", woo_status: "pending" }
2 : {car_rental_id: "6007", sharing_schedule: "10:00 AM", booked_cars: '5', woo_order_id: "6427", woo_status: "pending"}

此处的目标是一次获得booked_cars的总数。所以根据这个json。我应该

上午9:00预订4次,上午10:00预订5次。

我如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

您可以将其更改为类似的内容。

var values = window.confirmedBookings.reduce(function(prev, current) {
    if(!prev[current.sharing_schedule]) prev[current.sharing_schedule] = 0;
    prev[current.sharing_schedule] += Number(current.booked_cars);
    return prev;
}, {})

@edit:更新了答案以适合问题。

答案 1 :(得分:2)



var test = [{
  car_rental_id: "6007",
  sharing_schedule: "9:00 AM",
  woo_order_id: "6421",
  woo_status: "on-hold",
  booked_cars: '1'
}, {
  car_rental_id: "6007",
  sharing_schedule: "9:00 AM",
  woo_order_id: "6424",
  woo_status: "pending",
  booked_cars: '3'
}, {
  car_rental_id: "6007",
  sharing_schedule: "10:00 AM",
  woo_order_id: "6427",
  woo_status: "pending",
  booked_cars: '5'
}];

var carsBookedByTime = test.reduce(function(collection, element){
  var bookedCars = parseInt(element.booked_cars);
  //initialize total in the collection if it does not exist
  if (!collection[element.sharing_schedule]) collection[element.sharing_schedule] = 0;
  
  collection[element.sharing_schedule] += bookedCars;

return collection;
}, {});

console.log(carsBookedByTime);




答案 2 :(得分:0)

您似乎要求:

window.totalBooked = {};
$.each(window.confirmedBookings, function(index, value) {
    console.log(value.booked_cars);
window.totalBooked[value.sharing_schedule] = (window.totalBooked[value.sharing_schedule] || 0) + +value.booked_cars;
});

或者,稍微简单一些:

window.totalBooked = window.confirmedBookings.reduce(function(obj, value) {
    obj[value.sharing_schedule] = (obj[value.sharing_schedule] || 0) + +value.booked_cars;
    return obj;
}, {});

<强> DEMO