<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div>
<p>111111</p>
<p>2222222</p>
<p>33333333</p>
</div>
</body>
<script type="text/javascript">
/*
Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)(所谓类似数组的对象即具有length属性)和
可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。
* */
/*let arrayLike = {
'0':'a',
'1':'b',
'2':'c',
length:3
}
let arr1 = Array.from(arrayLike);
console.log(arr1);*/
/*let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
});*/
/* let sum =0;
[1, 2, 3, 4].forEach(function (item) {
// console.log(array[index] == item); // true
sum += item;
});
alert(sum); // 10*/
/*
es6中foreach的使用,就是遍历,循环
* */
/*let arr = [1,2,3,4];
for (let k=0;k < arr.length;k++){
alert(arr[k]);
}*/
// arr.forEach(alert);
// arr.forEach(console.log);
/*
foreach中通常支持传入一个回调函数,回调函数的参数分别为(value,index,array);
* */
//做一个关于求和的例子
/*var sum = 0;
[1, 2, 3, 4].forEach(function (item, index, array) {
console.log(array[index] == item); // true
sum += item;
});
alert(sum); // 10*/
/*
foreach中不仅能传入一个回调函数,还能传入一个改变this指向的参数
* */
/*var database = {
users: ["张含韵", "江一燕", "李小璐"],
sendEmail: function (user) {
if (this.isValidUser(user)) {
console.log("你好," + user);
} else {
console.log("抱歉,"+ user +",你不是本家人");
}
},
isValidUser: function (user) {
return /^张/.test(user);
}
};
// 给每个人法邮件
database.users.forEach( // database.users中人遍历
database.sendEmail, // 发送邮件
database // 使用database代替上面标红的this
);*/
/*
Array.of方法用于将一组值,转换为数组。
这个方法的主要目的,是弥补数组构造函数Array()的不足。
因为参数个数的不同,会导致Array()的行为有差异。
* */
/*var arr = new Array();
console.log(arr);
var arr1 = new Array(1);
console.log(arr1);
var arr2 = new Array(1,3);
console.log(arr2);*/
/*var arr = Array.of(1);
console.log(arr);*/
/*
* copyWithin()
数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),
然后返回当前数组。
也就是说,使用这个方法,会修改当前数组。
它接受三个参数。
target(必需):从该位置开始替换数据。
start(可选):从该位置开始读取数据,默认为0。如果为负值,表示倒着数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒着数。
* */
// let arr = [1,2,3,4,5];
// arr.copyWithin(0,3,4);
// arr.copyWithin(0,-2,-1);
//这三个参数都应该是数值,如果不是,会自动转为数值。
// arr.copyWithin(0,"-2","-1");
// console.log(arr);
//5、数组实例的fill()
/*
fill方法使用给定值,填充一个数组。
fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
* */
// let arr = ['a','b','c'];
// arr.fill(7);
// arr.fill(7,0,1);
// console.log(arr);
/*
可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、
values()是对键值的遍历,
entries()是对键值对的遍历
* */
// var arr =['a','b'];
/*for(let index of arr.keys()){
console.log(index);
}*/
//不好使
/*for(let elem of arr.values()){
console.log(elem);
}*/
/*for(let [index2,value] of arr.entries()){
console.log(index2,value);
}*/
//如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历。
</script>
</html>