gpt4 book ai didi

javascript - 如何仅使用列出的键创建对象?

转载 作者:行者123 更新时间:2023-12-03 07:16:43 24 4
gpt4 key购买 nike

创建一个由选取的源属性组成的对象。

参数

  • source - 任何 JavaScript 对象
  • keys - JavaScript 字符串数组

返回值

一个新对象,包含键中列出的源的所有属性。如果键在键中列出,但未在源中定义,则该属性不会添加到新对象。

例子

pick({ foo: 1, bar: 2, baz: 3 }, ['foo', 'baz']) // -> { foo: 1, baz: 3 }
pick({ qux: 4, corge: 5 }, ['bar', 'grault']) // -> {}
pick({ bar: 2 }, ['foo', 'bar', 'baz']) // -> { bar: 2 }

我有

function pick(source, keys) {
let result = {};
for (key in source) {
if (key === keys) {
result[key];
}
}
return result;
}

到目前为止

最佳答案

您没有为 result[key] 分配任何内容,它应该是 result[key] = source[key]

您没有测试 key 是否在 keys 中正确。 === 做精确比较,你想用keys.includes(key) 来测试包含。

function pick(source, keys) {
let result = {};
for (key in source) {
if (keys.includes(key)) {
result[key] = source[key];
}
}
return result;
}

console.log(pick({ foo: 1, bar: 2, baz: 3 }, ['foo', 'baz'])) // -> { foo: 1, baz: 3 }
console.log(pick({ qux: 4, corge: 5 }, ['bar', 'grault'])) // -> {}
console.log(pick({ bar: 2 }, ['foo', 'bar', 'baz'])) // -> { bar: 2 }

关于javascript - 如何仅使用列出的键创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62683399/

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