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