gpt4 book ai didi

javascript - ajax查询将对象键值更改为索引

转载 作者:行者123 更新时间:2023-11-28 04:00:11 26 4
gpt4 key购买 nike

我正在使用一个包含多个集合的 Firebase 数据库,并且使用包含的代码,我能够成功返回一个由所有景点组成的数组,其区域 ID 与 e.target 的区域 ID 匹配。

然而,我的代码中的某些内容正在将吸引力.id(与area_id不同的键)更改为数组中对象的索引。因此,id 1 变为 0,2 变为 1,等等...

起初我以为它发生在 Object.keys 中,所以我在它之前放置了一个控制台日志,并且更改已经存在。所以,我几乎肯定它发生在查询中。非常感谢任何帮助。

const getAttractionsByArea = (area_id) => {
let attractions = [];
return new Promise((resolve, reject) => {
$.ajax(`https://theme-park.firebaseio.com/attractions.json?orderBy="area_id"&equalTo=${area_id}`)
.then((results) => {
Object.keys(results).forEach((result) => {
results[result].id = result;
attractions.push(results[result]);
});
resolve(attractions);
}).catch((err) => {
reject(err);
});
});
};

最佳答案

问题似乎是您在循环时将每个单独记录的 id 设置为当前键索引。

请记住,Object.keys 返回一个字符串数组,该数组等于该对象的可枚举属性,在您的例子中是一个数组。这意味着您将返回一个索引数组。

你有这行

结果[结果].id = 结果;

您将每个元素的 id 设置为其索引,因此,如果数据库 id 中的元素为 54,那么如果它是集合中的第二个结果,则它现在设置为 1。

我不确定为什么你首先会有那行代码,但尝试注释掉该行并看看你会得到什么。

关于javascript - ajax查询将对象键值更改为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com