概述
1. Map
map常用到对数组内的元素进行修改
1.1 力扣一百道热门题第一道
解题思路:
(1)最先想到的应该是两个for循环暴力求解将数组内元素挨个相加如果得到target则获取两个元素的下标
(2)看了讨论区的解题思路,我看到了用target减去数组中的一个元素在查看数组中是否有得到的那个元素,这样我们就不用一个个试错,加快了运行时间,减少了消耗内存
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let map = new Map(); //创建一个map
for(let i = 0; i<nums.length; i++){
let a = target - nums[i] //定义一个变量a来储存target减去数组内的一个元素的结果
if (map.has(a)){ //判断a是否有在map对象中
return [map.get(a),i]
}
else{
map.set(nums[i],i); // 将数组中的下标作为map的值 元素作为 键
//(原因是 我们用到的map.has函数是通过查找对象的键来返回布尔值的)
}
}
return []
};
二,改变this指向(call,apply,bind)
(1)call
1,call可以调用函数,可以改变this指向
2,call的第一个参数:要改变this指向的那个对象
第二个参数:是要给调用的函数的参数(如果有多个参数就往后加)
let dog = {
name : "wang",
eat(foot){
console.log("我喜欢吃"+foot)
}
}
let cat = {
name:"miao",
}
dog.eat.call(cat,"鱼") //我喜欢吃鱼
(2)apply
与call的区别:传参的方式不一样 apply是通过数组传参
let dog = {
name : "wang",
eat(foot1,foot2){
console.log("我喜欢吃"+foot1+foot2)
}
}
let cat = {
name:"miao",
}
dog.eat.apply(cat,["鱼","肉"]) //我喜欢吃鱼肉
(3)bind
他会将调用的函数赋值给另外一个函数
let dog = {
name : "wang",
eat(foot1,foot2){
console.log("我喜欢吃"+foot1+foot2)
}
}
let cat = {
name:"miao",
}
let fun = dog.eat.bind(cat,"鱼","肉")
fun(); //我喜欢吃鱼肉
最后
以上就是朴素身影为你收集整理的前端复习(Map,改变this指向(call,apply,bind))day4的全部内容,希望文章能够帮你解决前端复习(Map,改变this指向(call,apply,bind))day4所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复