Skip to content

实现 lensProp

题目描述

给定一个字符串, 比如lensProp(a, obj) 返回 'obj.a'的值

代码

js
//  
function lensProp(lens, obj) {
  const keys = lens.split(".");
  if (keys.lenngth < 1) return;
  return keys.reduce((acc, cur) => (acc !== void 0 ? acc[cur] : acc), obj);
}

const a = lensProp("a", { a: 1 }); // 1
const b = lensProp("b", { a: 1 }); // undefined
const c = lensProp("a.b", { a: { b: "c" } }); // c
const d = lensProp("a.b.c.d.e.f", { a: { b: "c" } }); // undefined

console.log(a);
console.log(b);
console.log(c);
console.log(d);
//  
function lensProp(lens, obj) {
  const keys = lens.split(".");
  if (keys.lenngth < 1) return;
  return keys.reduce((acc, cur) => (acc !== void 0 ? acc[cur] : acc), obj);
}

const a = lensProp("a", { a: 1 }); // 1
const b = lensProp("b", { a: 1 }); // undefined
const c = lensProp("a.b", { a: { b: "c" } }); // c
const d = lensProp("a.b.c.d.e.f", { a: { b: "c" } }); // undefined

console.log(a);
console.log(b);
console.log(c);
console.log(d);