前端企业面试题:企业真实案例——32

实现lodash的 _.get 方法
var object = { 'a': [{ 'b': { 'c': 3 } }] };
 
_.get(object, 'a[0].b.c');
// => 3
 
_.get(object, ['a', '0', 'b', 'c']);
// => 3
 
_.get(object, 'a.b.c', 'default');
// => 'default'

 

当第2个参数为数组时,我们比较好处理

问题的关键就是把字符串如何变成数组的形式

很容易想到用正则

_.get = function(obj, path, defaultValue){
	var final_val = null;
	var temp = null;
        //如果是字符串,那么转化为数组形式
        //将 [] . 这些符号去掉即可
	if(typeof path === "string") {
		path = path.replace(/\[(\d)\]/g, '$1').replace(/\./g,'').split('');
	}
		
	temp = obj[path[0]];
        //遍历数组,依次访问
	for(var i=1; i

你可能感兴趣的:(前端企业面试题:企业真实案例——32)