iT邦幫忙

0

[javascript] json 不用迴圈get key值

Zaku 2019-04-01 17:32:2825682 瀏覽

請問一下假定有個object長這樣:

a={
 'c':0,
 'd':1,
 'e':2,
}

有辦法不用迴圈的情況下取得KEY值,假設取第一個值的key,a[0].key,這樣,還是沒有辦法,他是無順序性的?

看更多先前的討論...收起先前的討論...
wingkawa iT邦新手 3 級 ‧ 2019-04-01 17:39:28 檢舉
可以用 Object.keys() 取得 key 值
淺水員 iT邦大師 6 級 ‧ 2019-04-01 18:00:53 檢舉
Object 是無序的,下面連結有一些更詳細的說明
https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order
froce iT邦大師 1 級 ‧ 2019-04-02 15:52:06 檢舉
你是要依值取鍵?
Zaku iT邦新手 3 級 ‧ 2019-04-11 10:07:55 檢舉
不是依值取件,只是要取第一個值,因為 資料結構不是陣列,要只取第一筆這個操作變得有點尷尬
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
海綿寶寶
iT邦大神 1 級 ‧ 2019-04-02 11:27:23
最佳解答

試試看

var a = { 
'c':0,
'd':1,
'e':2
}

alert(Object.keys(a)[0]);
alert(Object.keys(a)[1]);
alert(Object.keys(a)[2]);

JS Fiddle Try it

Zaku iT邦新手 3 級 ‧ 2019-04-11 10:06:07 檢舉

恩我也找到這個不錯= =~

0
maxloh
iT邦新手 5 級 ‧ 2019-04-01 23:05:13

a["c"] // 0
a["d"] // 1
a["e"] // 2

0

這沒辦法。只能用 Object.keys() 來一次取得
或是你說的for來處理。

0
iT邦新手 5 級 ‧ 2019-04-02 13:38:10

是的,json 沒有順序性,

  • 來個範例,你可以透過key value的方式取值
var txt = '{"name":"John", "age":30, "city":"New York"}'
var obj = JSON.parse(txt);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.age;
  • 或者如上面所述可以用 Object.keys() 取得 key 值
  • 不然就用for迴圈了~~
for(var key in object){
  console.log(key + ' - ' + object[key])
}

出處:https://www.w3schools.com/js/js_json_parse.asp

我要發表回答

立即登入回答