在 React Developer 面試期間,我被要求制作一個函式。我基本上是新手,我應該能夠輕松做到這一點,但有一個問題。
制作一組顏色(作為字串)。撰寫一個函式來創建一個顏色管理器。它應該只有方法(沒有屬性):
● get - 回傳當前選擇的顏色
● next - 切換到下一個顏色
● prev - 切換回上一個顏色
● 重置——恢復原來的顏色
使用您制作的功能,您可以指定默認顏色。每個顏色管理器都應該有自己的顏色。
從我學到的教程中,一直使用道具。我被困在這種情況下,所以任何幫助將不勝感激。
uj5u.com熱心網友回復:
有幾種方法可以實作這一點,這里是其中之一。基本上,我有colorManager一個函式,它回傳一個包含您描述的所有方法的物件。該函式有一個引數,即 defaultColor引數。此外,我還添加了setPalette方法,以防我們需要更靈活地更改預定義顏色串列。您還可以在下面看到所描述方法的用法和 colsole 輸出。
function colorManager(defaultColor) {
let stack = [defaultColor, "red", "green", "blue", "pink"];
let index = 0;
return {
get: function () {
return stack[index];
},
next: function () {
index = 1;
if (index >= stack.length) {
index = 0;
}
return this.get();
},
prev: function () {
index -= 1;
if (index < 0) {
index = stack.length - 1;
}
return this.get();
},
reset: function () {
index = stack.indexOf(defaultColor);
return this.get();
},
setPalette: function(colours) {
stack = [defaultColor, ...colours]
}
};
}
const cm1 = colorManager("purple");
console.log(cm1.get()); // purple
console.log(cm1.next()); // red
console.log(cm1.next()); // green
console.log(cm1.prev()); // red
console.log(cm1.reset()); // purple
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/411285.html
標籤:
