一天一个仿lodash函数实现-fromPairs、indexOf、initial
fromPairs
它是toPairs的反转,不过现在是数组函数系列还没走到toPairs。
它接收一个二维数组,元素是一个两元素的数组,一个是key,一个是value
所以实现很简单
function fromPairs(arr){
const map = {};
arr.forEach(item => {
map[item[0]] = item[1];
})
return map;
}
indexOf
查找数组中匹配元素的索引值,看案例,暂只考虑基本数据类型的实现,那实现也简单。
function indexOf(arr, value, fromIndex=0){
let result = -1;
for(let i=fromIndex;i<arr.length;i++) {
// 暂时只考虑基本类型比较
if(arr[i]===value) {
result = i;
break;
}
}
return result;
}
initial
第一次了解到这个函数,就是将给定的数组返回(除了最后一位)
function initial(arr){
return arr.slice(0, arr.length-1)
}