今天的題目當中,將接續第四天Array Cardio中的內容,針對幾個沒有被應用到的陣列方法,在這個章節中練習,並且再介紹幾個常用的陣列方法。
在今天的課題中,有些陣列方法是之前有介紹過的,有些則是新的。在這邊整理今天課題中會遇到的所有陣列方法:
array.some()
:true
,否則回傳值為false
。let testArray = [3, 4, 5, 6, 7];
lett trueArray = testArray.some(function(item){
if(item > 6){
return item
};
});
let falseArray = testArray.some(function(item){
if(item > 7){
return item
};
});
console.log(trueArray); //true
console.log(falseArray); //false
array.every()
:.some()
類似,但需要所有元素調用判斷式的回傳值為true,最後回傳值才會為true
,否則回傳值為false
。let testArray = [3, 4, 5, 6, 7];
let trueArray = testArray.every(function(item){
if(item > 2){
return item
};
});
let falseArray = testArray.every(function(item){
if(item > 6){
return item
};
});
console.log(trueArray); //true
console.log(falseArray); //false
array.find()
:true
的元素會立刻回傳該元素,否則回傳undefined
。let testArray = ['b', 'c', 'd', 'a', 'e'];
let findArray = testArray.find(function(item){
if(item === 'a'){
return item
};
});
console.log(findArray); //a
array.findIndex()
:find()
類似,當找到第一個判斷式為true
的元素會立刻回傳該元素在陣列中的index
,否則回傳-1
。let testArray = ['b', 'c', 'd', 'a', 'e'];
let indexArray = testArray.findIndex(function(item){
if(item === 'a'){
return item
};
});
console.log(indexArray); //3
array.splice()
:array.splice(startIndex, deleteCount, addItem1, addItem2, ...)
//移除元素
let testArray = ['a', 'b', 'c', 'd', 'e'];
let removeB = testArray.splice(1, 1)
console.log(testArray);
//['a', 'c', 'd', 'e']
//新增元素
let testArray = ['a', 'b', 'c', 'd', 'e'];
let addB = testArray.splice(1, 0, 'b')
console.log(testArray);
//['a', 'b', 'b', 'c', 'd', 'e']
作者在草稿中已經先分別給了兩個陣列,都是由包含兩種屬性的物件所組成。
Is at least one person 19?
透過array.some()
方法,判斷陣列中是否有任一年齡大於19的人。年齡的計算可以利用new Data().getFullYear()
取得目前的年份,再減去每個物件中的出生年份來取得:
let checkAnyone = people.some(function(person){
//取得目前的年份
let currentYear = new Date().getFullYear();
//計算年齡
let age = currentYear - person['year'];
//判斷是否有年齡大於19歲的人
return age >= 19;
});
console.log(checkAnyone); //True
Is everyone 19?
透過array.every()
方法,判斷陣列中是否每個人的年齡都大於19:
let checkAnyone = people.every(function(person){
//取得目前的年份
let currentYear = new Date().getFullYear();
//計算年齡
let age = currentYear - person['year'];
//判斷是否有年齡大於19歲的人
return age >= 19;
});
console.log(checkAnyone); //False
Find the comment with the ID of 823423.
透過array.find()
方法,找出符合ID為823423的物件:
let findID = comments.find(function(item){
return item['id'] === 823423;
});
console.log(findID); //{text: "Super good", id: 823423}
Find the comment with this ID.
透過array.findIndex()
方法,找出符合ID為823423的物件元素在陣列中的Index,再利用此Index取出該元素以及其comment:
let findIndex = comments.findIndex(function(item){
return item['id'] === 823423;
});
let getText = comments[findIndex].text;
console.log(getText); //Super good
Delete the comment with the ID of 823423.
透過array.findIndex()
方法取得Index之後,再利用array.splice()
方法來移除該物件:
let findIndex = comments.findIndex(function(item){
return item['id'] === 823423;
});
comments.splice(findIndex, 1);
console.log(comments);
在今天陣列方法第二篇當中,我們使用到的幾個陣列的方法:
some()
:every()
:find()
:findIndex()
splice()
以上就是今天的方法與心得,感謝您的閱讀,也歡迎留言指教。