array/fromPairs.jsjavascript
/**
* 将键值对数组转换为对象。
* @function fromPairs
* @memberof module:array
* @param {Array[]} pairs 形如 [key, value] 的键值对数组
* @returns {Object} 新对象;重复键以后出现的值为准
* @throws {TypeError} 参数不是合法键值对数组时抛出
*/
function fromPairs(pairs) {
if (!Array.isArray(pairs) || pairs.some(pair => !Array.isArray(pair) || pair.length < 2 || (typeof pair[0] !== 'string' && typeof pair[0] !== 'number' && typeof pair[0] !== 'symbol'))) {
throw new TypeError('pairs must contain [string, number, or symbol key, value] entries')
}
return Object.fromEntries(pairs.map(([key, value]) => [key, value]))
}
export default fromPairs