gpt4 book ai didi

javascript - 编写一个简单的查找函数,无需单独使用 some 和 every

转载 作者:行者123 更新时间:2023-12-03 05:33:03 25 4
gpt4 key购买 nike

我想创建一个简单的查找函数,如果 value 中的 key 与其 之一匹配,则该函数在 array 中查找对象>按键:

find(
[ { name:'1', value:'a'}, { name:'2', value:'b' } ],
{ name:'1' }
) // => { name:'1', value:'a'}

如果有两个以上,则数组中的对象必须完全匹配:

find(
[ { name:'1', value:'a'}, { name:'2', value:'b' } ],
{ name:'1', value:'b' }
) // => null

我知道如何做到这一点,但要分别使用 someevery:

const keys = (object) => {
return Object.keys(object)
}

const find = (array, value) => {
return array.filter(object => {
return keys(object).every(key => { // change this to .some
return object[key] === value[key]
})
})[0]
}

有没有一种方法可以写这个,而无需我将 everysome 交换,反之亦然?

最佳答案

我认为你想将objectvalue交换,而不是everysome:

function find(array, value) {
return array.find(object =>
Object.keys(value).every(key =>
// ^^^^^
object[key] === value[key]
)
);
}

这适用于您的两种情况,因为它测试 value 是否为相应对象中属性的子集。

关于javascript - 编写一个简单的查找函数,无需单独使用 some 和 every,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40856597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com