Lodash 替换 JS 检查操作以设置值

Lodash replacement for a JS check operation to set value

我一直在使用一些代码来检查数组 index:1 中存在的输入字段的值。如下

const inputValue=journeyData && journeyData.birthdate && journeyData.birthdate[0]
          ? journeyData.birthdate[0]
          : null, 

是否有 lodash 替代相同的东西,这使得它写起来很短?

使用原生 optional chaining。不需要 lodash。

const journeyData = { birthdate: [new Date()] };

const inputValue = journeyData?.birthdate?.[0] ?? null;
const inputValue2 = journeyData?.birthdate?.[2] ?? null;

console.log(inputValue);
console.log(inputValue2);

其他文档

您可以使用 _.get() 来指定路径和回退。如果在对象上无法到达路径,您将获得默认值:

function test(journeyData) {
  const inputValue = _.get(journeyData, "birthdate[0]", null);
  return inputValue;
}

console.log( test() );                    // null
console.log( test({}) );                  // null
console.log( test({ birthdate: [] }) );   // null
console.log( test({ birthdate: [42] }) ); // 42
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>