Descripción del problema
El proyecto necesita obtener los atributos profundos de un objeto anidado, y a veces el objeto tiene estos atributos, a veces no, y no se informará ningún error de Undefine, lo cual es muy problemático.
Objeto como se muestra a continuación.
var object = {
'a': {
'b': {
'c': 3 } }};
solución:
Después de buscar durante mucho tiempo, encontré una biblioteca, la probé yo mismo y funcionó.
Basta con mirar el código.
// 安装
// $ npm i -g npm
// $ npm i --save lodash
var _ = require('lodash');
var object = {
'a': {
'b': {
'c': 3 } }};
// 存在值
var existValue = _.get(object, 'a.b.c', 'default');
console.log('existValue:' + existValue)
// => 3
// 不存在值
var inexistValue = _.get(object, 'a.e', 'default');
console.log('inexistValue:' + inexistValue)
// => 'default'
Utilice
$ npm i -g npm
$ npm i --save lodash
para instalarlo y usarlo.
_.get(对象, 属性路径, 默认值);
Si lo hay, se devolverá un valor; si no, se devolverá un valor predeterminado.
Sitio web oficial:
https://lodash.com/
https://lodash.com/docs/4.17.15#get