扫码关注官方订阅号
后台给传过来这么一个对象,默认值要取第一个,我用for循环一次取出来了,感觉特别low,你们有没有好一点的办法啊?
业精于勤,荒于嬉;行成于思,毁于随。
Object是无序的,我不知道你说的默认取第一个是怎么想的,键值为01那个?
var obj={"01":"w"}; obj["01"]
JS 里面 对象的 多个属性 是无序的。 数组才是有序的, 对象只能通过 键来取值
object.first
obj[Object.keys(obj)[0]]
$.each(myObject, function (key, value) { var html = '<tr><td>' + myObject.sysTime[value] + '</td><td>' + myObject.increase[value] + '</td><td>' + myObject.active[value] + '</td><td>' + myObject.powerOn[value] + '</td><td>'+ myObject.update[value] + '</td></tr>'; $("#data").append(html); });
obj["01"]不行么
for循环应该就是最优的了吧
function getObjFirst(obj){ for(let i in obj) return obj[i]; } let aObj = {01: 111, 02: 2222}; console.log(getObjFirst(aObj))
不管是用Object.keys,还是用for(let i in obj),得到的属性的顺序都是无法保证的。
就是循环出来的第一个并不是对象的第一个属性
var an_obj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.keys(an_obj)); // 2, 7 100 for(var i in an_obj) { console.log(i); // 2, 7 100 }
我试过将对象转成字符串,用JSON.stringify,但是发现顺序也还是被变了。。。
var obj={06:"so",08:"me",09:"th",15:"ing"} obj[Object.keys(obj).sort((a,b)=>a-b)[0]] /* Object.keys(obj): 输出 obj 里所有 key 组成的数组; /* .sort((a,b)=>a-b): 从小到大排序 /* [0]: 输出第一个的值。 // 以上操作找出 obj 中最小的 key 的值 (s) /* obj[s]: 取第一个 */
一行代码,哈哈。# 参考了 yangge26 的回答
转JSON取值不行么?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Object是无序的,我不知道你说的默认取第一个是怎么想的,键值为01那个?
JS 里面 对象的 多个属性 是无序的。 数组才是有序的, 对象只能通过 键来取值
object.firstobj[Object.keys(obj)[0]]
for循环应该就是最优的了吧
不管是用Object.keys,还是用for(let i in obj),得到的属性的顺序都是无法保证的。
就是循环出来的第一个并不是对象的第一个属性
我试过将对象转成字符串,用JSON.stringify,但是发现顺序也还是被变了。。。
一行代码,哈哈。
# 参考了 yangge26 的回答
转JSON取值不行么?