我正在為我的家庭作業而苦苦掙扎。我的任務是在鍵入物件元素的鍵后獲取它的值。問題是一個鍵,它不存在于物件中。在這種情況下,它應該顯示為“未找到”。我不知道如何做到這一點。Idk,如果我能正確解釋,那么我將展示我的代碼和預期結果。我希望你能檢查一下。
let object = {
a: "hund", b: "katze", c: "maus", d: "elefant", e: "schlange", f: "stachelschwein", g: "affe", h: "giraffe"
}
function getObjectElements(keys) {
let result = [];
for (let i = 0; i < keys.length; i ) {
for (const objectKey in object) {
if (keys[i] === objectKey) {
result.push(object[objectKey])
}
}
}
return result;
}
在此處輸入圖片說明
uj5u.com熱心網友回復:
對于每個鍵,從 中獲取值object,如果它不存在(使用??運算子或in帶有三元的運算子),請'not found'改用:
const object = {"a":"hund","b":"katze","c":"maus","d":"elefant","e":"schlange","f":"stachelschwein","g":"affe","h":"giraffe"}
function getObjectElements(keys) {
const result = [];
for (let i = 0; i < keys.length; i ) {
const key = keys[i];
result.push(object[key] ?? 'not found'); // or key in object ? object[key] : 'not found'
}
return result;
}
const result = getObjectElements(['a', 'b', 'z', 'c']);
console.log(result);
您還可以使用Array.map()以下方法縮短代碼:
const object = {"a":"hund","b":"katze","c":"maus","d":"elefant","e":"schlange","f":"stachelschwein","g":"affe","h":"giraffe"}
const getObjectElements = keys => keys.map(key => object[key] ?? 'not found');
const result = getObjectElements(['a', 'b', 'z', 'c']);
console.log(result);
uj5u.com熱心網友回復:
如果您對三元運算子 ie?或空合并運算子 ie 不滿意??(或者您還沒有在課程中學習,并且您認為使用它們會出乎意料),那么將一個簡單的 else 分支陳述句附加"not result"到結果在物件不包含鍵的情況下,應該使測驗通過:
const object = {
a: "hund", b: "katze", c: "maus", d: "elefant", e: "schlange", f: "stachelschwein", g: "affe", h: "giraffe"
}
function getObjectElements(keys) {
const result = [];
for (let i = 0; i < keys.length; i ) {
const key = keys[i];
if (object.hasOwnProperty(key)) {
result.push(object[key]);
} else {
result.push("not found");
}
}
return result;
}
console.log(getObjectElements(['a', 'b', 'z', 'c']));
console.log(getObjectElements(['a', 'a_1', 'a_2', 'a_3', 'b', 'c', 'd']));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/373215.html
標籤:javascript 目的
