[英]Can I do array destructuring assignment inside an object declaration?
我知道我可以這樣做:
const [MIN_SPEED, MAX_SPEED] = [0.4, 4.0];
我想要的是:
const SpeedManager = {
[MIN_SPEED, MAX_SPEED]: [0.4, 4.0]
}
這相當於:
const SpeedManager = {
MIN_SPEED: 0.4,
MAX_SPEED: 4.0
}
但是語法無效,我該如何實現呢?
這是不可能的 - 任何涉及解構的事情都需要為引用賦值(獨立變量名或嵌套屬性)。 但是在這里,您沒有引用,至少在對象初始值設定項中沒有。
我會堅持使用非解構方法,盡管一個丑陋的選擇是:
const SpeedManager = {}; ([SpeedManager.MIN_SPEED, SpeedManager.MAX_SPEED] = [0.4, 4.0]); console.log(SpeedManager);
正如所指出的,這是不可能的,另一種方法是壓縮兩個數組,然后使用Object.fromEntries()
為您構造對象:
const zip = (arr1, arr2) => arr1.map((e, i) => [e, arr2[i]]); const res = Object.fromEntries( zip(['MIN_SPEED', 'MAX_SPEED'], [0.4, 4.0]) ); console.log(res);
從數組獲取值和返回對象之間需要一個步驟。
const convert = ([MIN_SPEED, MAX_SPEED]) => ({ MIN_SPEED, MAX_SPEED }), speedManager = convert([0.4, 4.0]); console.log(speedManager);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.