第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編寫一個方法,該方法接受一個數(shù)組和一個對象,并返回一個數(shù)組及其在對象中的對應(yīng)值

編寫一個方法,該方法接受一個數(shù)組和一個對象,并返回一個數(shù)組及其在對象中的對應(yīng)值

Helenr 2023-09-21 16:25:33
編寫一個接受數(shù)組和對象的方法。該方法應(yīng)返回一個新數(shù)組,其中原始數(shù)組的元素被對象中相應(yīng)的值替換。我很困惑為什么它不返回任何東西。我走在正確的軌道上嗎?我不確定我是否應(yīng)該執(zhí)行 arr = result.   function elementReplace(arr, obj) {        var result = [];        for (key in obj) {            result.push(key[obj]);            arr = result;        }        return result;    }        arr1 = ["LeBron James", "Lionel Messi", "Serena Williams"];    obj1 = {"Serena Williams": "tennis", "LeBron James": "basketball"};        elementReplace(arr1, obj1); // returns ["basketball", "Lionel Messi", "tennis"]
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

我很困惑為什么它不返回任何東西。


你的函數(shù)正在返回一些東西,它返回一個數(shù)組,如下所示:


[undefined, undefined]

您需要確保用于console.log()將返回值記錄到控制臺。你之所以得到這樣的結(jié)果是undefined因為你使用了key[obj]. 當您使用for...in循環(huán)時,key代表對象中的鍵,這意味著您需要使用obj[key]


我走在正確的軌道上嗎?


你是對的,你需要一個循環(huán),但是,你循環(huán)了錯誤的東西。該問題要求您創(chuàng)建一個新數(shù)組,其中原始數(shù)組中的元素將替換為對象中相應(yīng)的值。這意味著您需要循環(huán) 中的元素arr,并將每個元素視為中的鍵obj。使用該鍵,您可以obj[key]從對象中獲取該鍵的相應(yīng)值。您還需要確保鍵位于對象內(nèi)部,以查看它是否包含值。


邏輯如下:


FUNCTION elementReplace(arr, obj)

? result <- []

? FOR elemKey in arr DO:

? ? ?IF elemKey is a key of obj THEN:

? ? ? ?push obj[elemKey] to result

? ? ?ELSE:

? ? ? ?push elemKey to result

? ? ?END IF

? END FOR

END FUNCTION

我不確定我是否應(yīng)該執(zhí)行 arr = result.


您不需要這樣做,arr = result;因為這只是將函數(shù)內(nèi)的局部變量重新分配給您正在創(chuàng)建的arr新數(shù)組。這并沒有取得多大成果,因為您在當前代碼中result沒有做任何事情。arr


解決方案(在揭曉之前先嘗試上述方法):

function elementReplace(arr, obj) {


? ?const result = [];


? ?for (const elemKey of arr) { // iterate through each element in the array

? ? ?if (obj.hasOwnProperty(elemKey)) // check if object has key

? ? ? ?result.push(obj[elemKey]);

? ? ?else

? ? ? ?result.push(elemKey);


? ?}


? ?return result;

?}


?const arr1 = ["LeBron James", "Lionel Messi", "Serena Williams"];

?const obj1 = {

? ?"Serena Williams": "tennis",? ?"LeBron James":

? ?"basketball"

?};


?console.log(elementReplace(arr1, obj1)); // returns ["basketball", "Lionel Messi", "tennis"]

?

或者,您可以使用Array.prototype.map()并利用對象中的每個值都是true 的事實,這意味著如果您從對象中得到一個falseundefined值,它一定是,允許您默認值:


const elementReplace = (arr, obj) => arr.map(key => obj[key] || key);




查看完整回答
反對 回復(fù) 2023-09-21
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號