map()
和 forEach 很像,不同处在於 forEach 没有回传值,使用 map 时会 return 一个新的阵列,所以要用一个变数去接住它产生的新阵列
let skill = ["Java","C#","JavaScript"];
let UpperSkill = skill.map(function(i){
return i.toUpperCase();
});
console.log(UpperSkill); // ["JAVA","C#","JAVASCRIPT"]
Or 箭头函式
let arr = [ 1, 2, 3, 4 ];
let newArr = arr.map(i => i * 2);
console.log(newArr); // [2, 4, 6, 8 ]
find()
如果找到阵列中符合条件的第一个结果就回传,return 後面要放条件
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.find(i=>{
return i.rating > 7.0;
})
console.log(result); // {language:"Java",rating:9.5}
如果找不到符合条件的,用 find()
时会回传 undefined
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.find(i=>{
return i.rating > 10;
})
console.log(result); // undefined
filter()
和 find()
很像,差别在於 filter()
回传的是全部符合条件的结果
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.filter(i=>{
return i.rating > 7.0;
})
console.log(result); // [{language:"Java",rating:9.5},{language:"JavaScript",rating:8.5}]
如果找不到符合条件的,用 filter()
时会回传一个空阵列
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.filter(i=>{
return i.rating > 10;
})
console.log(result); // []
includes()
用来判断阵列中是否包含某个元素,有的话回传 true,没有则回传 false。
可以放入两个参数,第一个参数为要寻找的元素,第二个参数为开始搜寻的元素索引值。
例如:
const arr = ['apple', 'banana', 'orange'];
console.log(arr.includes('apple')); // true (阵列中有 apple 所以回传 true)
console.log(arr.includes('apple',0)); // true (阵列中有包含 apple,且 apple 的索引值为 0,所以回传 true)
console.log(arr.includes('apple',1)); // false (阵列中虽包含 apple,但 apple 的索引值非为 1,所以回传 false)
console.log(arr.includes('orange',-1)); // true (阵列中有包含 orange,且 orange 的索引值为 -1,所以回传 true)
console.log(arr.includes('guava')); // false (阵列中没有 guava 所以回传 false)
some()
如果有任何一个条件符合,就 return true ,如果没有任何符合条件的则 return false。
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.some(i=>{
return i.rating > 9.0;
})
console.log(result); // true
有一个结果 > 9.0,所以 return true
假如把条件改成 > 10.0,则会因为找不到符合的条件而回传 false。
every()
如果每一个条件都符合,就 return true ,如果没有每个条件都符合则 return false。
let skill = [
{language:"Java",rating:9.5},
{language:"C#",rating:7.0},
{language:"JavaScript",rating:8.5}
];
let result = skill.every(i=>{
return i.rating > 9.0;
})
console.log(result); // false
因为并不是每个结果都 > 9.0,所以 return false
sort()
排列,使用 sort()
要注意的是, sort()
会改变原本的阵列。
let fruit = ["Orange","Apple","Guava"];
fruit.sort(); // 使用 sort() 会改变原阵列
console.log(fruit); // ['Apple', 'Guava', 'Orange']
如果在阵列里放数字,让 sort()
去排序的话,结果会照字串比大小的方式,只比第一个,所以会发现阵列中的数字并没有按照大小来排,而是只照第一个数字的大小排列
let num = [54,11,24,56,64,78,34,7,75];
console.log(num.sort()); // [11,24,34,54,56,64,7,75,78]
所以排列数字时要用另一种方式,在 sort()
里面给它一个 callback function ,并在里面放两个参数:
sort((a, b)=>{
return a-b;
})
ex:
将阵列里的数字由小到大排列
let num = [54,11,24,56,64,78,34,7,75];
num.sort((a, b)=>{
return a - b;
})
console.log(num); // [7,11,24,34,54,56,64,75,78]
将阵列里的字串长度由小到大排列
let text = ["php","C#","phython","JavaScript"];
text.sort((a, b)=>{
return a.length - b.length;
})
console.log(text); // ["C#","php","phython","JavaScript"]
sort((a, b)=>{
return b-a;
})
ex:
将阵列里的数字由大到小排列
let num = [54,11,24,56,64,78,34,7,75];
num.sort((a, b)=>{
return b - a;
})
console.log(num); // [78,75,64,56,54,34,24,11,7]
将阵列里的字串长度由大到小排列
let text = ["php","C#","phython","JavaScript"];
text.sort((a, b)=>{
return b.length - a.length;
})
console.log(text); // ["JavaScript","phython","php","C#"]
>>: Day 3 - Using the Gmail SMTP Server to Send Emails with ASP.NET Web Forms C# 使用 Gmail 做为邮件服务器来寄信
昨天新增完XIB档後,今天要来让TableViewCell显示餐厅资讯 因为我是嘉义人~所以来推荐大...
阿嬷都看得懂的满版横幅怎麽写与 normalize.css 昨天我们拿出了古早时代的贴纸簿,并且介绍...
那今天终於要来开始打code了!! 就从最基本的 Hello World开始吧 每一款程序语言最基本...
Get our environment set up # modules we'll use imp...
JDK、JRE 和 JVM 是 Java 编程语言的核心概念!在编程中不使用这些概念,但是作为 Ja...