在介绍 Spread Operator 和 Rest Operator 之前,先来介绍阵列相加的方法 - Concat。
如果阵列用加法的话会变成字串相加的形式。
例如:
let friends1 = ["Mike","John","Daniel"];
let friends2 = ["May","Lisa"];
console.log(friends1 + friends2); // Mike,John,DanielMay,Lisa
console.log(typeof (friends1 + friends2)); // string(用 "+" 来相加阵列会变成字串)
所以我们要用 concat 这个方法,才能让阵列和阵列加起来形成一个新的阵列。
要特别注意的是 concat 是有先後顺序的,例如下面的程序码,如果想要让 friends1 优先显示在相加後的新的阵列中,则 friends1 就要放在 concat 前面(用 friends1 去 concat friends2),反之。
let friends = friends1.concat(friends2);
console.log(friends); // ["Mike","John","Daniel","May","Lisa"]
console.log(typeof friends); // object(别忘了阵列是物件之一)
friends = friends2.concat(friends1);
console.log(friends); // ["May","Lisa","Mike","John","Daniel"]
前面介绍过将阵列相加的方法 concat ,这边要用另一种更简单的方法 : Spread operator,用 ...
将阵列展开
例如:
let friends1 = ["Mike","John","Daniel"];
let friends2 = ["May","Lisa"];
let friends = [...friends1,...friends2];
console.log(friends); // ["Mike","John","Daniel","May","Lisa"]
如果我们想要随意的在 function 里面加入参数,可以使用这种方法,在定义的 function 参数前面加 ...
,执行 function 时加入的多个参数就会变成一笔阵列资料
例如:
function check(...numbers){
console.log(numbers);
}
check(1,2,3,4,5,6,7,8);
// [1,2,3,4,5,6,7,8]
再举个例子 - 找最大数的方式,原本的方式是在 function 的参数放入阵列,程序码如下:
function findBiggest(arr) {
if(arr.length === 0){
return undefined;
}
let biggestNumber = -100000;
for(let i = 0;i < arr.length;i++){
if(arr[i] > biggestNumber){
biggestNumber = arr[i];
}
}
return biggestNumber;
}
console.log(findBiggest([3,67,43,95])); // 95
学会使用 ...
後我们把它拿来改成这种方式,在 function 内输入多个参数让它自己去比大小,而不必特别写一个阵列储存数字了(当然也可以用 Math.max()
这个方法)。
function findBiggest(...arr) {
if(arr.length === 0){
return undefined;
}
let biggestNumber = -100000;
for(let i = 0;i < arr.length;i++){
if(arr[i] > biggestNumber){
biggestNumber = arr[i];
}
}
return biggestNumber;
}
console.log(findBiggest(3,67,43,95,100)); // 100
console.log(Math.max(3,67,43,95,100)); // 100
>>: Day 14 读 Go Concurrency Patterns - Rob Pike I
有些功能性的标签不需要内文,写法如下: < b >粗体字< /b > b 标...
免接触 免拿笔签名 流程 人进场 --> 手机扫描 QR --> 填写资料 -->...
三十天很快就过去了,已经很有经验的资安高手和大神,出版书籍、发表文章、甚至四处宣讲分享技术,都可以快...
昨天总算完成了「我的JavaScript日常」的最後一篇文章,很高兴自己成功挑战了 30 天的研究与...
本系列文之後也会置於个人网站 在这之前,都是先请大家照着做,没有好好说明关於Keycloak的使用...