在此示例中,要记录带有“title”和“director”键的属性值,使用 obj[key]。因为我们已经处于对象的执行上下文中:在本例中是电影。 “Obj[key]”中的 Obj 必须引用 title: 'a'、director: 'b' 以及这些对象的值的 key,因此“a”和“b”被标记为键,对吗?
这些“键类型”值也可以用 obj[value] 记录吗?
<小时/>这是类(class)中的一个示例,但讲师没有很好地解释它,所以我可能花了两个小时试图理解术语。我希望这是正确的,如果不是;我真的很感激我所犯的任何错误。
提前致谢
最佳答案
将图像中的代码放在这里以便于引用,还稍微更改了日志以明确哪个是键,哪个是值:
const movie = {
title: 'a',
releaseYar: 2018,
rating: 4.5,
director: 'b'
};
showProperties(movie);
function showProperties(obj) {
for (let key in obj)
if (typeof obj[key] === 'string') {
console.log('key -->', key);
console.log('value -->', obj[key]);
}
}
不,该示例中的“a”和“b”不是键,而是值。
在该示例中,movie
是对象。电影对象的键是 title
、releaseYear
、 rating
和 director
。顺便说一句, key 只是“属性”的另一个名称。
在 showProperties
函数中,您循环遍历每个键 - 即。在每次迭代中,key
首先是 title
,然后是 releaseYear
,依此类推。
第一次迭代中的 obj[key]
将为 movie['title']
,其值为 a
。
控制台日志显示 key ,后跟 movie[key]
的值。因此,第一个标题的键是 title
,而 a
的值。
关于javascript - 键/值对的值也可以是键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61124423/