如何在Object中搜索具有数组值的值?

Nur*_*gin 1 javascript arrays search object key-value

我有一个对象如下;

FOO: {
        BAR: [9,32,8,12 ],
        ZET: 4,
        BETA: [3,14,6,2],
        ALPHA: 37
    },
Run Code Online (Sandbox Code Playgroud)

我需要搜索此对象的值以匹配值keys.有大量的样本给出keys了一个奇异的值,但我找不到任何能够搜索数组中的值的样本.

我怎样才能搜索整个FOO对象的值并与之匹配keys

:目的; 我会寻找一个输入,如果给定输入,2则期望获得密钥BETA或者如果给定输入4ZET.

所以基本上这些值已经是一些预先定义的唯一值.

Nin*_*olz 7

你可以获得密钥,创建一个值数组并检查includes.返回找到的密钥.

function find(object, value) {
    return Object
        .keys(object)
        .find(k => [].concat(object[k]).includes(value));
}

var object = { FOO: { BAR: [9, 32, 8, 12], ZET: 4, BETA: [3, 14, 6, 2], ALPHA: 37 } };

console.log(find(object.FOO, 4));
console.log(find(object.FOO, 8));
Run Code Online (Sandbox Code Playgroud)