美文网首页
JS在深层数据结构中取值方案

JS在深层数据结构中取值方案

作者: MI_NI | 来源:发表于2017-11-29 16:34 被阅读0次
let school = {
    name: 'Hope middle school',
    created: '2001',
    classes: [
        {
            name: '三年二班',
            teachers: [
                { name: '张二蛋', age: 26, sex: '男', actor: '班主任' },
                { name: '王小妞', age: 23, sex: '女', actor: '英语老师' }
            ]
        },
        {
            name: '明星班',
            teachers: [
                { name: '欧阳娜娜', age: 29, sex: '女', actor: '班主任' },
                { name: '李易峰', age: 28, sex: '男', actor: '体育老师' },
                { name: '杨幂', age: 111, sex: '女', actor: '艺术老师' }
            ]
        }
    ]
};

一、原始的方式

school.classes &&
school.classes[0] &&
school.classes[0].teachers &&
school.classes[0].teachers[0] &&
school.classes[0].teachers[0].name

二、Reduce的方式

const get = ( o, p, d) => p.reduce((xs, x) => (xs && xs[x] ? xs[x] : d), o);

// call
var res = get(school, ['classes', 0, 'teachers', 0, 'name'], '默认值');
console.log(res);   //张二蛋

三、lodashget方法

_.get(school, 'classes[0].teachers[0].name', '默认值');

参考文献

相关文章

网友评论

      本文标题:JS在深层数据结构中取值方案

      本文链接:https://www.haomeiwen.com/subject/vhxpbxtx.html