天天看点

【技巧】根据key(字符串)层层查找数据

/**
 * 在dataObj对象中,寻找用连续.符号(a.b.c)的keyName属性
 * @param dataObj
 * @param keyName
 */
function lookUp(dataObj, keyName) {
    // 查看传入的keyName中有没有.符号
    if (keyName.indexOf('.') != -1) {
        let names = keyName.split(".");
        // 设置临时变量,存储当前层查找到的数据
        let temp = dataObj;
        for (let i = 0; i < names.length; i++) {
            // 每找一层,就将临时变量设为新的
            temp = temp[names[i]]
        }
        return temp;
    }
    // 如果没有.符号,直接返回dataObj[keyName]
    return dataObj[keyName]
}