构造函数调用的方法: 静态方法
实例对象调用的方法: 实例方法
1.数组对象新增方法(补充)
1.1 Array.isArray(arr) true / false
console.log(Array.isArray([1,2,3]))
1.2 filter 过滤数组单元,如果返回值为真,将元素放入新数组
map 对数组进行排序,将计算后的结果放入新数组
<script src="cities.js"></script>
<script>
1. 将城市名字中包含 白 字的 输出
let arr = cities.filter(city => city.nm.includes('白'))
2. id末尾为0的城市
let arr = cities.filter(city => city.id % 10 === 0);
console.log(arr);
3. 将拼音大写
let arr = cities.map(city => {
city.py = city.py.toUpperCase();
return city;
})
4. 将数组的值全部返回3次方
let arr = [1,3,5,7,9];
let newArr = arr.map(n => n**3);
console.log(newArr);
</script>
1.3 some(callback) 对数组进行遍历,只要有一个满足条件,则返回true,并终止遍历,否 则返回false
<script src="cities.js"></script>
<script>
遇到第一个含有 石 字的城市停下来
let n = cities.some(city => {city.nm.includes('石'));
console.log(n);
</script>
1.4 every(callback) 对数组进行遍历,只要有一个不满足条件,则返回false,并终止遍历, 否则返回true
1.5 forEach(callback) 遍历数组,无返回值
1.6 reduce(function(preValue,nowValue,index,arrSelf) {return preValue + nowValue})
累加数组单元
preValue 上一个值
nowValue 当前值
index 当前值下标
arrSelf 当前数组
<script>
求和
let arr = [1,2,3,4];
let sum = arr.reduce((preValue, nowValue) => preValue+nowValue)
console.log(sum)
</script>
2.对象的新增特性
2.1 属性及方法的简洁表示(key名与value名相同)
<script>
var name = "王公子";
var skill = "今夜买单";
var hobby = "唱跳";
var wgz = {
name: name,
skill: skill,
hobby: hobby
}
let wgz = {
name,skill, hobby,
sing() {},
jump() {},
run() {}
}
</script>
2.2 Object.is()相当于全等但是有区别
Object.is(1,2)
Object.is(NaN,NaN)
Object.is(0,-0)
<script>
if (NaN === NaN) {
console.log("ok");
}
if (Object.is(NaN, NaN)) {
console.log('yes');
}
</script>
2.3 Object.assign(obj1,obj2,obj3)合并对象
2.4 Object.keys(obj) 将obj的key值返回数组
Object.values(obj) 将obj的value值返回数组
<script>
let cc = {
A: [],
B:[],
D:[],
T: []
}
let arr = Object.keys(cc);
console.log(arr);
</script>
3.set数据结构
3.1 类似于数组,但是成员唯一,没有索引
3.2 var set = new Set(x) x:数组,类数组,字符串
3.3 获取set的长度不是length而是size
3.4 方法 : add(x);delete(x);has(x);clear(x)
3.5 可以使用 for of 与 forEach 对 set 进行遍历
// 特征:成员唯一
function MySet(array=[]) {
let arr = [];
array.forEach(item => {
if (!arr.includes(item)) {
arr.push(item)
}
});
this.array = arr;
}
// 增加:add
MySet.prototype.add = function(item) {
this.array.includes(item) || this.array.push(item);
}
// 删除:del
MySet.prototype.del = function(item) {
let index = this.array.indexOf(item);
if (index === -1) {
return;
}
this.array.splice(index, 1);
}
// 清空:clear
MySet.prototype.clear = function() {
this.array = [];
}
// 是否存在:has
MySet.prototype.has = function(item) {
return this.array.includes(item);
}
数组去重
Array.prototype.singleArr = function() {
return [...new Set(this)];
}