Объектная версия отображения - PullRequest
0 голосов
/ 21 сентября 2018

Дубликат: функция сопоставления для объектов (вместо массивов)

Как отобразить или выполнить итерацию по объекту, где значения являются другим объектом как таковым:

[{
    "id":2,
    "name":"Jane Smith",
    "position":"Cook",
    "applied":"02/08/16",
    "experience":4,
    "availability":{
        "M":1,
        "T":1,
        "W":1,
        "Th":1,
        "F":0,
        "S":0,
        "Su":0
    },
    "questions": [{
        "text":"Have you ever been convicted of a felony?",
        "answer":"Yes"
    }]
},
...(2 other objects with the same format)....
]

Мне нужен доступ к availability объекту

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Остерегайтесь того, что нет гарантии порядка ключей объекта, поэтому не существует абсолютно согласованного способа их перебора.Однако вы можете использовать оператор for ... in для перебора перечислимых свойств объекта.Вы можете использовать это, чтобы в основном перебирать пары ключ / значение объектов и что-то делать с ними.

const availability = {
    "M":1,
    "T":1,
    "W":1,
    "Th":1,
    "F":0,
    "S":0,
    "Su":0
};
for (const key in availability) {
    console.log(key, availability[key]);
}

// Output:
/*
  M 1
  T 1
  W 1
  Th 1
  F 0
  S 0
  Su 0
*/

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

0 голосов
/ 21 сентября 2018

map() эквивалент объекта Object.keys() и Object.entries() Это функция, представленная в ES7

    const data = [{
    "id":2,
    "name":"Jane Smith",
    "position":"Cook",
    "applied":"02/08/16",
    "experience":4,
    "availability":{
        "M":1,
        "T":1,
        "W":1,
        "Th":1,
        "F":0,
        "S":0,
        "Su":0
    },
    "questions": [{
        "text":"Have you ever been convicted of a felony?",
        "answer":"Yes"
    }]
}
 ]

    console.log(Object.entries(data[0].availability));
    console.log(Object.keys(data[0].availability));

Проверьте это здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys Для ваших данных, если у вас есть большечем один объект, то вы можете сначала перебрать массив, используя array.map() и использовать Object.entries() внутри map()

0 голосов
/ 21 сентября 2018

Я предполагаю, что вам нужен список объектов доступности.

const availabilityObjects = objects.map(object => object.availability)

Сделаем это.Ниже приведен фрагмент кода:

const objects =  [{
 		"id": 2,
 		"name": "Jane Smith",
 		"position": "Cook",
 		"applied": "02/08/16",
 		"experience": 4,
 		"availability": {
 			"M": 1,
 			"T": 1,
 			"W": 1,
 			"Th": 1,
 			"F": 0,
 			"S": 0,
 			"Su": 0
 		},
 		"questions": [{
 			"text": "Have you ever been convicted of a felony?",
 			"answer": "Yes"
 		}]
 	},
 	{
 		"id": 2,
 		"name": "Jane Smith",
 		"position": "Cook",
 		"applied": "02/08/16",
 		"experience": 4,
 		"availability": {
 			"M": 1,
 			"T": 1,
 			"W": 1,
 			"Th": 1,
 			"F": 0,
 			"S": 0,
 			"Su": 0
 		},
 		"questions": [{
 			"text": "Have you ever been convicted of a felony?",
 			"answer": "Yes"
 		}]
 	},
 	{
 		"id": 2,
 		"name": "Jane Smith",
 		"position": "Cook",
 		"applied": "02/08/16",
 		"experience": 4,
 		"availability": {
 			"M": 1,
 			"T": 1,
 			"W": 1,
 			"Th": 1,
 			"F": 0,
 			"S": 0,
 			"Su": 0
 		},
 		"questions": [{
 			"text": "Have you ever been convicted of a felony?",
 			"answer": "Yes"
 		}]
 	}
 ]
 
 console.log(objects.map(object => object.availability))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...