$.getJSON 是否重新排序数据?

记者:


$.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: "гр. ВИДИН"}

为什么要重新排序数据?


森栏
浏览 121回答 1
1回答

PIPIONE

带有数字键的 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))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript