首页 > 解决方案 > 如何在具有键数组的对象中查找值

问题描述

例如我有一个对象,它本身有对象和数组:

const object = 
{
    a: {
        b: [
            0: 'something',
            1: {
                c: 'the thing that I need',
            },
        ],
    },
};

和一个以键为值的数组:

const array =
[
   'a', 'b', '1', 'c',
];

如何使用此数组在对象中导航并为我提供值?也许有办法做到这一点ramda?或者只是为了使其看起来易于阅读。

标签: javascriptramda.js

解决方案


您可以减少定义通过对象的路径的数组。您确实在数组中有错误。路径应该是:[ 'a', 'b', '1', 'c' ],因为你需要的是 b 数组的第二个元素,而不是第一个。

const object = {
  a: {
    b: [
      'something',
      { c: 'the thing that I need' }
    ],
  },
};
const path = [ 'a', 'b', '1', 'c' ];
const result = path.reduce(( source, next ) => source[ next ], object );
console.log( result );


推荐阅读