在 JavaScript 中返回多個值
通常,函式終止時有一個返回案例。返回的情況可以有一個值或沒有任何東西可以傳遞。
在 JavaScript 中,不支援函式返回多個值。因此,為了能夠打包多個值並通過函式傳遞它們,我們需要陣列和物件的幫助。
在這裡,我們將演示使用陣列來儲存多個函式值。稍後,我們還將瞭解如何使用物件來收集函式值。
此外,我們還將弄清楚如何使用 destructing assignment
和一般變數宣告來解包函式值。
在 JavaScript 中從帶有陣列的函式返回多個值
在本例中,getValue
函式有兩個變數,我們將它們作為陣列傳遞並返回。
新的變數 feature
宣告將以陣列的形式儲存函式返回。像任何其他陣列遍歷一樣,我們可以使用索引訪問值。
更簡單地說,這裡的 feature
是另一個陣列,它以陣列形式獲取從 getValues
函式返回的同步值。
程式碼片段:
function getValues() {
var hair = 'Short', color = 'Black';
return [hair, color];
}
var feature = getValues();
var x = feature[0];
var y = feature[1];
console.log(x + ' ' + y + ' Hair');
輸出:
使用 Destructing Assignment
解包陣列
一般來說,我們可以很容易地宣告變數或物件來儲存陣列元素。但是對於大資料,每次都定義 var
是很乏味的。
你還可以迴圈訪問陣列以訪問值。除此之外,ES6 還增加了解包陣列元素的功能,如下例所示。
程式碼片段:
function getValues() {
var hair = 'Short', color = 'Black';
return [hair, color];
}
var [x, y] = getValues();
console.log(x + ' ' + y + ' Hair');
輸出:
使用 JavaScript 中的物件從函式返回多個值
你可以輕鬆地使用鍵值
對來使用物件構建資料。對於這個示例驅動器,我們將再次初始化函式 getValues
,這次返回案例將採用物件格式。
程式碼片段:
function getValues() {
var hair = 'Long', color = 'Brown';
return {hair, color};
}
var feature = getValues();
var x = feature.hair;
var y = feature.color;
console.log(x + ' ' + y + ' Hair');
輸出:
這裡的程式碼塊有一個作為物件工作的變數 feature
。稍後與 dot(.)
方法一起,我們呼叫 keys
來訪問值。
這個 map
需要明確的鍵名,因此相應的值得到了發言權。
使用 Destructing Assignment
解包物件
通過宣告 ES6 約定:destructing assignment
,可以解壓縮從函式傳遞的物件。
在這裡,我們將顯式宣告 keys
,但宣告將直接從函式訪問值對。讓我們檢查一下程式碼塊。
程式碼片段:
function getValues() {
var hair = 'Long', color = 'Brown';
return {hair, color};
}
var {hair, color} = getValues();
console.log(hair + ' ' + color + ' Hair');
輸出:
正如你所看到的,我們剛剛從函式中傳遞了 keys
,當用鍵名解壓它們時,輸出也顯示了相應的值。