前端开发整理笔记

1. 数组对象之根据特定字段去重

需求: 数组对象去重

const arr = [
  { id: 1, name: 'aa', age: 16 },
  { id: 1, name: 'aa', age: 16 },
  { id: 3, name: 'cc', age: 20 },
  { id: 3, name: 'cc', age: 20 },
  { id: 2, name: 'bb', age: 18 },
  { id: 1, name: 'aa', age: 16 },
]
// 方法一
const newArr = arr.filter((ele, i, self) => {
  const index = self.findIndex(item => {
    return item.id === ele.id
  })
  return index === i
})
console.log(newArr)
// 方法二
function unique(arr) {
  const res = new Map();
  return arr.filter((a) => !res.has(a.id) && res.set(a.id, 1))
}
const newArr = unique(arr)
console.log(newArr)

有关数组处理的方法

function unique(arr) {  //数组去重es6,最简单的方法,不支持对象
    return Array.from(new Set(arr))
}
function equar(a, b) {    //判断两个数组是否相同
    if (a.length !== b.length) {
        return false
    } else {
        for (let i = 0; i < a.length; i++) {
            if (a[i] !== b[i]) {
                return false
            }
        }
        return true
    }
}
Array.prototype.indexOf = function(val) { //获取数组中指定元素的索引位置
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};
Array.prototype.removeItem = function(val) {    //删除数组指定元素
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};

2. 获取url链接参数
getUrlParam(name) {
	// history 不带#号模式 获取url链接参数
	let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
	let r = window.location.search.substr(1).match(reg);
	if (r != null) {
		return unescape(r[2]);
	}
	return null;
},
getHashParameter(key) {
	// hash 带#号模式 获取url链接参数
	var arr = (location.hash || '').split('?')[1].split('&')
	var params = {}
	for (var i = 0; i < arr.length; i++) {
	 var data = arr[i].split('=')
		if (data.length === 2) {
			params[data[0]] = data[1]
		}
	}
	return params[key]
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web前端开发这一领域是现代互联网行业中非常重要的一个职业岗位,负责将设计师设计的网站页面转化为实际可交互的网页。为了适应这个职业的要求,我进行了一段时间的预习,并整理了一些笔记。 首先,了解HTML(超文本标记语言)是十分重要的。它是构建网页结构的标准,可以通过标签定义不同的元素,如标题、段落、链接等。我学习了HTML的基本语法,如标签的使用规范、嵌套关系等。 其次,对CSS(层叠样式表)的理解也是必要的。通过CSS,我可以为HTML元素添加样式或者布局,使页面更加美观和易于阅读。我学习了CSS的选择器、属性和值,以及如何对文本、盒模型进行样式设置。 另外,JavaScript是实现网页交互性的重要一环。我了解了JavaScript的基本语法和DOM(文档对象模型),可以通过JavaScript操作网页元素,实现动态效果、表单验证等功能。 在学习的过程中,我还关注了响应式设计的概念。响应式设计可以使网页在不同设备上提供良好的用户体验,通过CSS媒体查询和弹性布局等技术,使页面适应不同的屏幕大小和分辨率。 此外,我还进行了一些实践练习,通过编写一些小项目来巩固所学知识。这些实践项目包括创建静态网页、制作简单的动画效果、实现表单验证等,帮助我理解和应用所学的技术。 综上所述,我的Web前端开发预习笔记主要包括HTML、CSS、JavaScript以及响应式设计的基础知识和实践经验。我相信这些准备工作可以为我之后的学习和工作打下良好的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值