前言
此方法沒有對其他方法進行引用
正文
原始碼
/**
* Casts `value` as an array if it's not one.
*
* @since 4.4.0
* @category Lang
* @param {*} value The value to inspect.
* @returns {Array} Returns the cast array.
* @example
*
* castArray(1)
* // => [1]
*
* castArray({ 'a': 1 })
* // => [{ 'a': 1 }]
*
* castArray('abc')
* // => ['abc']
*
* castArray(null)
* // => [null]
*
* castArray(undefined)
* // => [undefined]
*
* castArray()
* // => []
*
* const array = [1, 2, 3]
* console.log(castArray(array) === array)
* // => true
*/
function castArray(...args) {
if (!args.length) {
return []
}
const value = args[0]
return Array.isArray(value) ? value : [value]
}
export default castArray
複製程式碼
解析
引數
該方法接受任何形式的引數
返回值
該方法返回一個陣列
方法解析
該方法首先會判斷傳入引數的個數,若無任何傳入引數,會直接返回給呼叫該方法的地方一個空陣列,否則進行下一步。
下一步該方法會將傳入的第一個引數賦值給方法內宣告的value
變數,然後判斷變數內的值(也就是傳入該方法的第一個引數)是否為Array
型別(即陣列型別),若該值為陣列型別,則直接將其返回給呼叫該方法的地方,否則建立一個新陣列將其作為新陣列第一項,並將該新陣列返回給呼叫該方法的地方。
注: 該方法不管傳入多少個引數,只會取傳入的第一個引數。
示例
castArray(1)
--> [1]
castArray("1")
--> ["1"]
castArray({a: 1})
--> [(a: 1)]
castArray([1,2,3])
--> [1, 2, 3]
castArray(undefined)
--> [undefined]
castArray(null)
--> [null]
castArray(NaN)
--> [NaN]
castArray(Symbol("1"))
--> [Symbol(1)]
castArray(1,2)
--> [1]
複製程式碼
相關連結:
本文章來源於午安煎餅計劃Web組 - 殘陽