慕的地8271018
2021-12-23 10:51:13
我Object.keys()用來顯示鍵/值對中的值。它有效,但我無法理解它為什么有效。const data = { question: "Why does this work?", language: "JavaScript", upvotes: 0};// #1: ["question", "language", "upvotes"]console.log(Object.keys(data).map(key => key));// #2: [{…data…}, {…data…}, {…data…}, {…data…}]console.log(Object.keys(data).map(key => data));// #3: ["Why does this work?", "JavaScript", 0]console.log(Object.keys(data).map(key => data[key]));在示例#3 中,為什么data[key]使用魔法短語來訪問值?我希望它像key => key[value]
1 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
對象的每個鍵都是一個字符串。當你迭代Object.keys一個對象的 時,你就是在迭代字符串,所以用
Object.keys(data).map(key
key 是一個字符串。
當data是對象時,data[key]將訪問該鍵的值,這只是普通的括號表示法:
const data = {
question: "Why does this work?",
language: "JavaScript",
upvotes: 0
};
const key = 'language';
const langVal = data[key];
console.log(langVal);
當你做
.map(key => data[key])
這是同樣的事情,只是在一個循環內。
請注意,如果您想要對象值,使用它會更容易Object.values:
const data = {
question: "Why does this work?",
language: "JavaScript",
upvotes: 0
};
const values = Object.values(data);
console.log(values);
添加回答
舉報
0/150
提交
取消