数组排列、数组迭代、JS日期

———————W3School学习笔记————————

数组排列

1.sort() 方法以字母顺序对数组进行排序
  如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。
  所以sort() 方法在对数值排序时会产生不正确的结果
//创建按钮
<button onclick="myFunction()">试一试</button>

<p id="demo"></p>

<script>
//输出原数组
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits;
//sort()方法以字母顺序对数组进行排序
function myFunction() {
  fruits.sort();
  document.getElementById("demo").innerHTML = fruits;
}
</script>
//输出结果:Apple,Banana,Mango,Orange
2.reverse() 以反转顺序对数组进行排列
fruits.sort();            // 先进行正向排列
fruits.reverse();         // 后进行反转元素 顺序
3.数字排序
sort() 方法在对数值排序时会产生不正确的结果,所以我们通过一个比值函数来修正此问题
<button onclick="myFunction()">试一试</button>

<p id="demo"></p>

<script>
var points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = points;  

function myFunction() {
  points.sort(function(a, b){return a - b});
  //升序排列
  //.sort()  //输出1,10,100,25,40,5,因为会先将元素转换为字符串,用字符串的首字符进行比较,
             //如果第一个字符相同,继续比较第二个字符
 //function(a, b){return a - b}用冒泡排序从前往后进行比较,按由小到大的顺序排序
 //当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100),该函数计算 40-100,然后返回 -60(负值),排序函数将把 40 排序为比 100 更低的值。
 //降序排列:b-a
  document.getElementById("demo").innerHTML = points;
}
</script>
4.对数组进行随机排序
points.sort(function(a, b){return 0.5 - Math.random()});
//.5表示正数和负数的概率都是1/2,当为正数时前面一个数放到后面,当为负数前面的数仍放在前面,为零时不改变
5.查找最低(最高)的数组值
<p>最低值是:<span id="demo"></span></p>

<script>
var points = [40, 0.5,100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});//1.sort进行正向字符排序,对排好的顺序进行从小到大的数字排序 得到:0.5,1,5,10,25,40,100此时第一位数组就是最小的数组值。
document.getElementById("demo").innerHTML = points[0];//输出最小数组值
//最大数组值:points[points.length-1]
//如果前面的是b-a,那么第一个数组[0]就是最大值,length-1就是最小值
</script>
6.用 Math.max.apply  来查找数组中的最高/低值
<p>最高值是:<span id="demo"></span></p>

<script>
var points = [40, 100.9, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = myMax(points);

function myMax(arr) {  //arr:数组
  return Math.max.apply(null, arr);//查找返回数组中的最高值
  								   // 第一个参数是对象(this),
                                   // 第二个参数是一个数组集合,
                                  //查找最低值用math.min,apply()
}
</script>
7.排序对象数组
。。。。。

数组迭代

重复反馈过程的活动,逼近所需目标或结果,而每一次迭代的结果都将会作为下一次迭代的初始值

1.forEach() 方法为每个数组元素调用一次函数(回调函数)
<script>
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
//forEach回调函数 ;(myFunction)作为参数
document.getElementById("demo").innerHTML = txt;

function myFunction(value, index, array) { 
//(value, index, array) value:迭代到的数组项;index:value对应的索引;array:数组
  txt = txt + value + "<br>"; 
}
</script>
2.Array.map()
map() 方法通过对每个数组元素执行函数来创建新数组
map() 方法不会对没有值的数组元素执行函数。
map() 方法不会更改原始数组。
	3.Array.filter()
	filter() 方法创建一个包含通过测试的数组元素的新数组
4.Array.reduce()
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduce() 方法在数组中从左到右工作。另请参见 reduceRight()。
reduce() 方法不会减少原始数组
5. Array.reduceRight()
reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduceRight() 方法在数组中从左到右工作。另请参见 reduce()。
reduceRight() 方法不会减少原始数组。
6.Array.every()
every() 方法检查所有数组值是否通过测试。
7.Array.some()
some() 方法检查某些数组值是否通过了测试。
8.Array.lastIndexOf()
Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索
9.Array.find()
find() 方法返回通过测试函数的第一个数组元素的值。
10.Array.findIndex()
findIndex() 方法返回通过测试函数的第一个数组元素的索引。

JS日期

有 4 种方法创建新的日期对象:
new Date()  用当前日期和时间创建新的日期对象
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds)
new Date(date string)
1.new Date()  用"当前"日期和时间创建新的日期对象
<p id="demo"></p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d;
//等同于 document.getElementById("demo").innerHTML = d.toString();
</script>
//Tue Mar 16 2021 16:53:05 GMT+0800 (中国标准时间)
2.new Date(year, month, ...)用“指定”日期和时间创建日期对象
<script>
var d = new Date(2019, 12, 25, 10, 33, 30, 0);
//年、月、日、小时、分钟、秒和毫秒
document.getElementById("demo").innerHTML = d;
</script>

//注释:JavaScript 从 0 到 11 计算月份,一月是 0。十二月是11。
上个世纪
一位和两位数年份将被解释为 19xx 年:
<script>
var d = new Date(99, 12, 25);//三个参数 就指的是 年 月 日 ,99指1999年,输出为1999+1 = 2000年
//var d = new Date(9, 12, 25);  此处的9 就指的是1909年,输出为1910年
document.getElementById("demo").innerHTML = d;
</script>
3.new Date(dateString) 从日期字符串创建一个新的日期对象
var d = new Date("December 25, 2019 12:46:00");
4.new Date(milliseconds) 创建一个零时加毫秒的新日期对象

JavaScript 将日期存储为自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数。
零时间是 1970 年 1 月 1 日 00:00:00 UTC。
现在的时间是:1970 年 1 月 1 日之后的 1554166879383 毫秒
<script>
var d = new Date(0);
//0:现在的时间是:1970 年 1 月 1 日之后的 0毫秒
//86400000毫秒是一天
//var d = new Date(100000000000); 1970 年 1 月 1 日起的 100000000000 毫秒,大约是 1973 年 3 月 3 日
//var d = new Date(-100000000000); 1970 年 1 月 1 日减去 100 000 000 000 毫秒大约是 1966 年 10 月 31 日:
document.getElementById("demo").innerHTML = d;
</script>
4.toUTCString() 方法将日期转换为 UTC 字符串(一种日期显示标准)
  Tue, 16 Mar 2021 09:36:15 GMT
document.getElementById("demo").innerHTML = d.toUTCString();
//Tue, 16 Mar 2021 09:36:15 GMT
5.toDateString()
  Tue Mar 16 2021
document.getElementById("demo").innerHTML = d.toDateString();
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

礼礼。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值