我如何迭代数组的数组,并保持仅值从一个单一的索引在javascript?



我正在使用easepicker构建一个预订日历,并在mySQL数据库中使用第三方API导入数据。我得到了数据库中的数据,我可以在Javascript中访问它(我是新的)。我试图从数组的数组中删除所有索引,但无论我如何尝试执行循环,我都会得到一个未定义的.pop(),尽管我确保对象是数组的数组。

$.ajax({
url     : 'get_data.php', // this fetches the booking info from 3rd party => DB
type    : 'GET',          // type of the HTTP request
success : checkAvail,
});

function checkAvail(response) {
results     = response;
var results = jQuery.parseJSON(response);
availables  = results.filter(a => a.isAvailable === '1');
console.log(availables); // displays the array of arrays for avail dates

availables.forEach((available) => {
available.pop(2); // **Uncaught TypeError: available.pop is not a function
});
console.table(availables);
}

console.log(可用)输出

[
{
"id": "79653836",
"date": "2022-07-09",
"isAvailable": "1",
"price": "2188"
},
{
"id": "79653838",
"date": "2022-07-10",
"isAvailable": "1",
"price": "1750"
},
{
"id": "79653840",
"date": "2022-07-11",
"isAvailable": "1",
"price": "1750"
},
{
"id": "79653842",
"date": "2022-07-12",
"isAvailable": "1",
"price": "1750"
}
]

availables是对象的数组,而不是数组的数组。

从一个对象中获取一个特定的属性,使用.propname,所以使用available.date来获取日期。

您可以使用map()返回一个新数组,该数组使用此数组来获取属性。

const availables = [
{
"id": "79653836",
"date": "2022-07-09",
"isAvailable": "1",
"price": "2188"
},
{
"id": "79653838",
"date": "2022-07-10",
"isAvailable": "1",
"price": "1750"
},
{
"id": "79653840",
"date": "2022-07-11",
"isAvailable": "1",
"price": "1750"
},
{
"id": "79653842",
"date": "2022-07-12",
"isAvailable": "1",
"price": "1750"
}
];
const dates = availables.map(a => a.date);
console.log(dates);