javascript - 怎么取一个对象的第一个值
迷茫
迷茫 2017-04-11 11:38:54
[JavaScript讨论组]


后台给传过来这么一个对象,默认值要取第一个,我用for循环一次取出来了,感觉特别low,
你们有没有好一点的办法啊?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(11)
伊谢尔伦

Object是无序的,我不知道你说的默认取第一个是怎么想的,键值为01那个?

var obj={"01":"w"};
obj["01"]
迷茫

JS 里面 对象的 多个属性 是无序的。 数组才是有序的, 对象只能通过 键来取值

黄舟

object.first

PHP中文网

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))
PHP中文网

不管是用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取值不行么?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号