数组元素作为 key 取对象的值

有一数组 arr:

const arr = ['a', 'b', 'c']

有一对象 obj,它有唯一属性,其 key 为数组 arr 中的任一元素。以当前数组 arr 为例,它最多有三种可能:

const obj = {
    a: 1
}
// 或者:
const obj = {
    b: 2
}
// 或者:
const obj = {
    c: 3
}

如何将数组 arr 的元素作为对象 obj 的 key,并获取其值?

阅读 4k
3 个回答

看题意应该是只取数组中存在的属性的值,没有要求返回值姑且就当做只取一个吧:

function getValue(obj = {}, valueKeys = []) {
    const keys = Object.keys(obj)
    const key = keys.find(key => valueKeys.includes(key))

    return key ? obj[key] : null
}
const arr = ['a', 'b', 'c']

// 指定对象存在的值
console.log(getValue({a: 1}, arr))  // 1
console.log(getValue({b: 2}, arr))  // 2
console.log(getValue({c: 9}, arr))  // 9

// 对象中没有数组里有的值,返回 null
console.log(getValue({d: 11}, arr))  // null

看来两遍题目应该是这个。

我这个是根据arr数组获取对象中的属性和值。

const obj = {
    a: 1,
    b: 2,
    c: 3,
    kk:'0'
}
const arr = ['a', 'b', 'c'];
Object.fromEntries(arr.map(key=> [key, obj[key]]));

image.png

我理解的题意是,把arr 的元素分别作为obj 的key,在obj[key] 里面找到一个有意义的值

arr.reduce((a,b)=>{
    return obj.hasOwnProperty(b)?obj[b]:a
},obj[arr[0]])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题