Как игнорировать / пропустить неопределенное во вложенном JSON Javascript - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь вернуть все это (строка) из вещей (1-10 объектов) и вещей (1-10 объектов).Я заметил, что я не могу сделать это с подстановочным знаком, но мне интересно, есть ли другой способ сделать это?

Я хотел бы вернуть массив со всеми it .

response.things [0] .stuff [0] .it вернет строку из моего первого объекта - это каждая из вещей и вещи , но

$.get("https://page.json", function(response) {
  var substr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  var arrayIts = [];
  $.each(substr , function(index, val) { 
    var arrayIts = response[index];
    console.log(arrayIts.things[index].stuff[val].it);
  });
});

Выше вернет все it , пока не вернется undefined, а затем остановится.

Как я могу вернуть все it и, возможно, проигнорировать / пропустить undefined?

Мое решение пока будет выглядеть примерно так:

$.getJSON('https://jsonplaceholder.typicode.com/posts', function(data) {
  	var arrayData = [];
		try {arrayData.push("<li>"+data[0].id+"</li>");}catch(e){}
		try {arrayData.push("<li>"+data[1].id+"</li>");}catch(e){}
    try {arrayData.push("<li>"+data[2].id+"</li>");}catch(e){}
 		try {arrayData.push("<li>"+data[100].id+"</li>");}catch(e){arrayData.push("<li>skipped</li>")}
    try {arrayData.push("<li>"+data[3].id+"</li>");}catch(e){}
    try {arrayData.push("<li>"+data[99].id+"</li>");}catch(e){}
		document.getElementById('listId').innerHTML = arrayData.join("");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="listId">empty</ul>

1 Ответ

0 голосов
/ 13 июня 2019

Просто используйте if.

If (ответ [индекс]) arrayIts.push (ответ [индекс]);

Если ответ [index]) определен, то это правда. Иначе это ложь.

...