sindresorhus/eslint-plugin-unicorn
GitHub で見るRule proposal: `no-useless-object-entries-lookup`
Open
#2,583 opened on 2025年3月2日
help wantednew rule
説明
Description
I found this pattern
in https://github.com/sindresorhus/eslint-plugin-unicorn/pull/2582, which use Object.entry to search for a specific key and access the value, which should use a direct object property access instead.
Examples
// ❌
const [, value] = Object.entries(object).find(([key,]) => key === 'something');
const value = Object.entries(object).find(([key,]) => key === 'something')[1];
const value = Object.entries(object).find(([key,]) => key === 'something')?.[1];
const [, value] = Object.entries(object).find((entries) => entries[0] === 'something');
const value = Object.entries(object).find((entries) => entries[0] === 'something')[1];
const value = Object.entries(object).find((entries) => entries[0] === 'something')?.[1];
// ✅
const value = object.something;
Proposed rule name
no-useless-object-entries-lookup
Additional Info
Note 1: this rule should ensure the searching key can't be object builtin properties/methods.
Should ignore this case, since foo can be constructor or something else which is in object prototype.
Object.entry(object).find(([key]) => key === foo)
Note 2: Maybe it's also hard to detect that object is a plain object.