记者:$.getJSON('services/get_locations.php', {region: $("#oblast").val()}, function(data) { console.log(data);});PHP:$result = json_encode($raw['data']);echo $result;exit;结果来自var_dump($result):{ "10971":"\u0433\u0440. \u0412\u0418\u0414\u0418\u041d", "179":"\u0441. \u0410\u041a\u0410\u0426\u0418\u0415\u0412\u041e", "919":"\u0441. \u0410\u041d\u0422\u0418\u041c\u041e\u0412\u041e"}如您所见,第一个 ID 是 10971。然而,结果console.log(data)是:{179: "с. АКАЦИЕВО", 919: "с. АНТИМОВО", 10971: "гр. ВИДИН"}为什么要重新排序数据?
1 回答

PIPIONE
TA贡献1829条经验 获得超9个赞
带有数字键的 Javascript 对象将始终按数字键值的升序排列
如果顺序很重要,则将结构更改为数组之类的东西[{id:179, value: "...."}]或[[10971,"wrd"],[179,"xyz"]]
没有ajax的例子。请注意日志顺序与构造顺序不同(升序键值)
const data = {
"10971":"\u0433\u0440. \u0412\u0418\u0414\u0418\u041d",
"179":"\u0441. \u0410\u041a\u0410\u0426\u0418\u0415\u0412\u041e",
"919":"\u0441. \u0410\u041d\u0422\u0418\u041c\u041e\u0412\u041e"
}
console.log(data);
console.log('Keys:', Object.keys(data))
添加回答
举报
0/150
提交
取消