Привет, я очень новичок в JSON и API и работаю над API, в котором я получаю значение в массиве, например.
{
id: 0,
text: "one"
}
{
id: 1,
text: "two"
}
{
id: 2,
text: "three"
}
Мне нужно значение только массива, где id=0
, и я не знаю, как сортировать массив в JSON для достижения этого, я использовал ajax для получения этого значения
async function getDataFromId() {
let url = 'API_URL';
let Qid = 1;
let result;
try {
result = await jQuery.ajax({
url: url,
type: 'GET',
contentType: 'application/json',
});
result = result.sort((a, b) => a.id- b.id);
console.info(result)
}catch (error) {
console.error(error);
}
}
@Turtlean, извините, это очень нубская вещь, но как фильтровать?
Попробуйте это: var new_array = result.filter(function(i){return i.id == 0})
Вам не нужно сортировать массив, чтобы получить объект, где id == 0. Используйте Array#find, чтобы найти желаемый объект.
let myObject = myArr.find((_o)=>_o.id === 0);
Может быть, это:
if (result){
resultSorted = result.sort((a, b) => a.id - b.id);
resultFiltered = result.filter(x => x.id == 0);
}
Мне нужно значение только массива, где id=0
Вы правильно сортируете результат в ascendant order
в соответствии с их идентификаторами, поэтому остается только создать массив, содержащий только первый элемент:
result = result.sort((a, b) => a.id- b.id)
console.info([result[0])
Вы можете воспользоваться условием, которое вам нужно, чтобы filter
массив. В этом случае: id === 0
. Это удалит элементы, не соответствующие условию (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter):
result = result.filter((a) => a.id === 0)
console.info(result)
Имейте в виду, что sorting
массив дороже, чем просто filtering
он, поэтому, если вы заинтересованы в сохранении только массива с id === 0
, я бы определенно выбрал вариант filter
Все приведенные выше ответы хороши, но вы используете переменную Qid
result = result.filter(function(i){return i.id === Qid});
console.info(resulr)
Вам не нужно сортировать это, вы можете отфильтровать это, это будет более легким материалом для вашей работы.
Зачем вам сортировать его, если вам нужно только значение, где
id=0
? Не достаточно ли фильтровать?