Как получить доступ к данным из объектов, который имеет массив объектов JavaScript - PullRequest
0 голосов
/ 29 января 2019

Может кто-нибудь, пожалуйста, помогите мне с некоторым кодом о том, как получить доступ к данным из объекта, который имеет массив объектов.Вот мой массив:

{
    "data": [{
        "order_id": "336566",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-21 15:00:27",
        "delivery_date": "2019-01-24",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "335719",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2018-12-24 13:46:27",
        "delivery_date": "2018-12-30",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "336531",
        "customer_name": "Tay",
        "customer_surname": "Z",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-11 08:42:27",
        "delivery_date": "2019-01-17",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "336545",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-17 19:00:27",
        "delivery_date": "2019-01-18",
        "delivery_from": "11:00",
        "delivery_to": "12:00",
        "completed": "0",
        "shopper": "joel"
    }, {
        "order_id": "241918",
        "customer_name": "Marietjie",
        "customer_surname": "Short",
        "total_items": "44",
        "completed_items": "7",
        "percent_complete": 0.15909090909091,
        "datetime_received": "2018-07-25 15:18:25",
        "delivery_date": "2018-10-29",
        "delivery_from": "12:00",
        "delivery_to": "13:00",
        "completed": "0",
        "shopper": "Tay"
    }, {
        "order_id": "281774",
        "customer_name": "Ashleigh",
        "customer_surname": "Hodge",
        "total_items": "16",
        "completed_items": "0",
        "percent_complete": 0,
        "datetime_received": "2018-10-04 15:59:19",
        "delivery_date": "2018-10-29",
        "delivery_from": "12:00",
        "delivery_to": "13:00",
        "completed": "0",
        "shopper": null
    }, {
        "order_id": "336544",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-17 08:00:27",
        "delivery_date": "2019-01-19",
        "delivery_from": "13:00",
        "delivery_to": "14:00",
        "completed": "0",
        "shopper": "joel"
    }]
}

Поэтому я хочу получить длину массива также для доступа к дочерним свойствам, таким как customer_name и т. Д.

Ответы [ 4 ]

0 голосов
/ 29 января 2019

Вложенный в цикле сделает трюк для вас.Надеемся, что это поможет

var res = {
    "data": [{
        "order_id": "241918",
        "customer_name": "Marietjie",
        "customer_surname": "Short",
        "total_items": "44",
        "completed_items": "7",
        "percent_complete": 0.15909090909091,
        "datetime_received": "2018-07-25 15:18:25",
        "delivery_date": "2018-10-29",
        "delivery_from": "12:00",
        "delivery_to": "13:00",
        "completed": "0",
        "shopper": "Tay"
    },{
        "order_id": "336544",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-17 08:00:27",
        "delivery_date": "2019-01-19",
        "delivery_from": "13:00",
        "delivery_to": "14:00",
        "completed": "0",
        "shopper": "joel"
    }]
}


for(var char in res){
    for(var obj in res[char]){
        // Log all the customer names for example.
        console.log(JSON.stringify(res[char][obj].customer_name));
    }
}

Ибо в циклах - это хороший и простой способ зацикливания объектов.

0 голосов
/ 29 января 2019

Внутри значения объекта data ключ представляет собой массив объектов.Таким образом, чтобы получить доступ к любому ключу, например customer_name, вы можете использовать обозначения dot (.) или square[].Вы можете перейти по этой ссылке , чтобы найти разницу между двумя

let myData = {
  "data": [{
    "order_id": "336566",
    "customer_name": "joel",
    "customer_surname": "kabeya",
    "total_items": "0",
    "completed_items": "0",
    "percent_complete": 1,
    "datetime_received": "2019-01-21 15:00:27",
    "delivery_date": "2019-01-24",
    "delivery_from": "10:30",
    "delivery_to": "12:00",
    "completed": "1",
    "shopper": "joel"
  }, {
    "order_id": "335719",
    "customer_name": "joel",
    "customer_surname": "kabeya",
    "total_items": "0",
    "completed_items": "0",
    "percent_complete": 1,
    "datetime_received": "2018-12-24 13:46:27",
    "delivery_date": "2018-12-30",
    "delivery_from": "10:30",
    "delivery_to": "12:00",
    "completed": "1",
    "shopper": "joel"
  }, {
    "order_id": "336531",
    "customer_name": "Tay",
    "customer_surname": "Z",
    "total_items": "0",
    "completed_items": "0",
    "percent_complete": 1,
    "datetime_received": "2019-01-11 08:42:27",
    "delivery_date": "2019-01-17",
    "delivery_from": "10:30",
    "delivery_to": "12:00",
    "completed": "1",
    "shopper": "joel"
  }, {
    "order_id": "336545",
    "customer_name": "joel",
    "customer_surname": "kabeya",
    "total_items": "0",
    "completed_items": "0",
    "percent_complete": 1,
    "datetime_received": "2019-01-17 19:00:27",
    "delivery_date": "2019-01-18",
    "delivery_from": "11:00",
    "delivery_to": "12:00",
    "completed": "0",
    "shopper": "joel"
  }, {
    "order_id": "241918",
    "customer_name": "Marietjie",
    "customer_surname": "Short",
    "total_items": "44",
    "completed_items": "7",
    "percent_complete": 0.15909090909091,
    "datetime_received": "2018-07-25 15:18:25",
    "delivery_date": "2018-10-29",
    "delivery_from": "12:00",
    "delivery_to": "13:00",
    "completed": "0",
    "shopper": "Tay"
  }, {
    "order_id": "281774",
    "customer_name": "Ashleigh",
    "customer_surname": "Hodge",
    "total_items": "16",
    "completed_items": "0",
    "percent_complete": 0,
    "datetime_received": "2018-10-04 15:59:19",
    "delivery_date": "2018-10-29",
    "delivery_from": "12:00",
    "delivery_to": "13:00",
    "completed": "0",
    "shopper": null
  }, {
    "order_id": "336544",
    "customer_name": "joel",
    "customer_surname": "kabeya",
    "total_items": "0",
    "completed_items": "0",
    "percent_complete": 1,
    "datetime_received": "2019-01-17 08:00:27",
    "delivery_date": "2019-01-19",
    "delivery_from": "13:00",
    "delivery_to": "14:00",
    "completed": "0",
    "shopper": "joel"
  }]
}

console.log('Length of data array ', myData.data.length)

// this will get customer_name

myData.data.forEach(function(item) {
  console.log(item.customer_name)
})
0 голосов
/ 29 января 2019

Я могу начать с некоторых из них, так как недавно я сделал нечто подобное.Я не один из экспертов, и я тоже учусь.Поэтому я сконцентрировал ваш массив на том, что вы видите ниже только для тестирования.

Затем я включил базовый цикл for для прохождения массива вместе с Object.values, который покажет только свойства ваших объектов в массиве.Существует множество способов доступа к этим данным, но кто-то более опытный сможет помочь больше.

let data = [
      {
        order_id: "336566",
        customer_name: "joel",
        customer_surname: "kabeya",
        total_items: "0"
      },
      {
        order_id: "335719",
        customer_name: "joel",
        customer_surname: "kabeya",
        total_items: "0",
        completed_items: "0",
        percent_complete: 1,
        datetime_received: "2018-12-24 13:46:27"
      },
      {
        order_id: "336531",
        customer_name: "Tay",
        customer_surname: "Z",
        total_items: "0",
        completed_items: "0",
        percent_complete: 1
      }
    ];

      for(var i = 0; i < data.length; i++){
        console.log(Object.values(data[i]));  //or however you choose to display it
      }

Также ... data.length даст вам количество объектов.Я не уверен, как узнать количество ключей или свойств.

0 голосов
/ 29 января 2019

Вам необходимо использовать свойство accessors .Вы также можете прочитать Основы объектов .

const obj = {
    "data": [{
        "order_id": "336566",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-21 15:00:27",
        "delivery_date": "2019-01-24",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "335719",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2018-12-24 13:46:27",
        "delivery_date": "2018-12-30",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "336531",
        "customer_name": "Tay",
        "customer_surname": "Z",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-11 08:42:27",
        "delivery_date": "2019-01-17",
        "delivery_from": "10:30",
        "delivery_to": "12:00",
        "completed": "1",
        "shopper": "joel"
    }, {
        "order_id": "336545",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-17 19:00:27",
        "delivery_date": "2019-01-18",
        "delivery_from": "11:00",
        "delivery_to": "12:00",
        "completed": "0",
        "shopper": "joel"
    }, {
        "order_id": "241918",
        "customer_name": "Marietjie",
        "customer_surname": "Short",
        "total_items": "44",
        "completed_items": "7",
        "percent_complete": 0.15909090909091,
        "datetime_received": "2018-07-25 15:18:25",
        "delivery_date": "2018-10-29",
        "delivery_from": "12:00",
        "delivery_to": "13:00",
        "completed": "0",
        "shopper": "Tay"
    }, {
        "order_id": "281774",
        "customer_name": "Ashleigh",
        "customer_surname": "Hodge",
        "total_items": "16",
        "completed_items": "0",
        "percent_complete": 0,
        "datetime_received": "2018-10-04 15:59:19",
        "delivery_date": "2018-10-29",
        "delivery_from": "12:00",
        "delivery_to": "13:00",
        "completed": "0",
        "shopper": null
    }, {
        "order_id": "336544",
        "customer_name": "joel",
        "customer_surname": "kabeya",
        "total_items": "0",
        "completed_items": "0",
        "percent_complete": 1,
        "datetime_received": "2019-01-17 08:00:27",
        "delivery_date": "2019-01-19",
        "delivery_from": "13:00",
        "delivery_to": "14:00",
        "completed": "0",
        "shopper": "joel"
    }]
}

//Length
console.log(obj.data.length)

//Child Item
console.log(obj.data[3].order_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...