Visitar URL original
[pull] master from soyaine:master by pull[bot] · Pull Request #1 · Zelda256/JavaScript30 · GitHub
Skip to content
Open
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f494a3e
Merge pull request #36 from dashrun/master
soyaine Oct 29, 2017
c2d79bd
Merge pull request #37 from dashrun/master
soyaine Nov 1, 2017
fd50d02
Merge pull request #39 from dashrun/master
soyaine Nov 12, 2017
76949a9
Change my name online
soyaine Dec 29, 2017
a5d97a5
替换第19~28项的Demo跳转链接
experdot Jan 5, 2018
3ec39d4
Merge pull request #43 from experdot/master
soyaine Jan 8, 2018
b8fce47
Update index-SOYAINE.html
fyzhu Mar 6, 2018
4a74e8e
Merge pull request #44 from fyzhu/patch-1
soyaine Mar 6, 2018
a9b940d
更新了readme文件中的示意图链接
dashnowords Jul 17, 2018
3c3b8e0
Merge branch 'master' into master
dashnowords Jul 17, 2018
da49c1d
fix typo `tranform-origin`
soyaine Jul 23, 2018
e0e6705
Create .gitattributes
dashnowords Sep 19, 2018
84f6d0b
Merge pull request #49 from dashnowords/master
soyaine Oct 30, 2018
f55e0ab
fix issue #57 #54 #53 #51 #41 #32
soyaine Dec 5, 2018
f91b4a2
fix issue #56 #55
soyaine Dec 6, 2018
d311720
fix #58 and lint code
soyaine Jun 25, 2019
202e91f
style: lint code
soyaine Jun 27, 2019
8e6eeda
remove videos link note #60
soyaine Jul 14, 2021
0a6c3e4
update nickname
soyaine Jul 14, 2021
f4232a6
fix #65 修复一些问题
soyaine Jul 11, 2022
59f2b7c
fix #58 variable name
soyaine Jun 25, 2019
f889ba1
style: lint comment code
soyaine Jun 25, 2019
bef7bbf
typo: change 'asset' to 'assert'
longlin10086 Oct 14, 2024
fc41f58
Merge pull request #67 from longlin10086/master
soyaine Oct 18, 2024
c3d9264
fix #68
soyaine Nov 10, 2025
a934c4a
fix #68
soyaine Nov 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix #58 and lint code
  • Loading branch information
soyaine committed Jun 25, 2019
commit d31172031f5481d44598f8e1dd1aa25d97cca02e
181 changes: 96 additions & 85 deletions 04 - Array Cardio Day 1/index-SOYAINE.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@
</head>
<body>
<p><em>请按 F12 查看 Console 面板</em> 💁</p>
<p>若无结果请刷新试试</p>
<p>若无结果请刷新试试</p>
<script>

// ## Array 基础 Day 1

// Some data we can work with

const inventors = [
Expand All @@ -28,119 +26,132 @@
{ first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
];

const flavours = ['Chocolate Chip', 'Kulfi', 'Caramel Praline', 'Chocolate', 'Burnt Caramel', 'Pistachio', 'Rose', 'Sweet Coconut', 'Lemon Cookie', 'Toffeeness', 'Toasted Almond', 'Black Raspberry Crunch', 'Chocolate Brownies', 'Pistachio Almond', 'Strawberry', 'Lavender Honey', 'Lychee', 'Peach', 'Black Walnut', 'Birthday Cake', 'Mexican Chocolate', 'Mocha Almond Fudge', 'Raspberry'];
const flavours = ['Chocolate Chip', 'Kulfi', 'Caramel Praline', 'Chocolate', 'Burnt Caramel', 'Pistachio',
'Rose', 'Sweet Coconut', 'Lemon Cookie', 'Toffeeness', 'Toasted Almond', 'Black Raspberry Crunch',
'Chocolate Brownies', 'Pistachio Almond', 'Strawberry', 'Lavender Honey', 'Lychee', 'Peach',
'Black Walnut', 'Birthday Cake', 'Mexican Chocolate', 'Mocha Almond Fudge', 'Raspberry'
];

const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano', 'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William'];
const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry',
'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert',
'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester',
'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano',
'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle',
'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose',
'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black Elk', 'Blair, Robert',
'Blair, Tony', 'Blake, William'
];

// Array.prototype.filter()
// 1. Filter the list of inventors for those who were born in the 1500's
// 筛选 16 世纪出生的人
const fifteen = inventors.filter(function(inventor) {
if (inventor.year >= 1500 && inventor.year < 1600 ) {
return true;
}
});
console.table(fifteen);
const __fifteen = inventors.filter(inventor =>(inventor.year >= 1500 && inventor.year < 1600));
console.table(__fifteen);
// 筛选 16 世纪出生的人
const fifteen = inventors.filter(function (inventor) {
if (inventor.year >= 1500 && inventor.year < 1600) {
return true;
}
});
console.table(fifteen);

const __fifteen = inventors.filter(inventor => (inventor.year >= 1500 && inventor.year < 1600));
console.table(__fifteen);


// Array.prototype.map()
// 2. Give us an array of the inventors' first and last names
// 展示上面发明家的姓名
const fullNames = inventors.map(inventor => inventor.first + ' ' + inventor.last);
// const fullNames = inventors.map(inventor => `${inventor.first} ${inventor.last}`);
console.log(fullNames);
// 展示上面发明家的姓名
const fullNames = inventors.map(inventor => inventor.first + ' ' + inventor.last);
// const fullNames = inventors.map(inventor => `${inventor.first} ${inventor.last}`);
console.log(fullNames);


// Array.prototype.sort()
// 3. Sort the inventors by birthdate, oldest to youngest
// 把这些人从大到小进行排序
// const ordered = inventors.sort(function(firstName, secondName) {
// if(firstName.year > secondName.year) {
// return 1; // 对 sort 函数,返回值为 -1 排在前面,1 排在后面
// } else {
// return -1;
// }
// });
// console.table(ordered);
const __ordered = inventors.sort((a, b) => (a > b) ? 1 : -1);
console.table(__ordered);
// 把这些人从大到小进行排序
// const ordered = inventors.sort(function(firstName, secondName) {
// if(firstName.year > secondName.year) {
// return 1; // 对 sort 函数,返回值为 -1 排在前面,1 排在后面
// } else {
// return -1;
// }
// });
// console.table(ordered);

const __ordered = inventors.sort((a, b) => (a > b) ? 1 : -1);
console.table(__ordered);


// Array.prototype.reduce()
// 4. How many years did all the inventors live
// 他们所有人一共活了多少岁
// 下面三种写法是一样的效果
// var total = 0;
// for(var i = 0; i < inventors.length; i++) {
// total += inventors[i].passed - inventors[i].year;
// }
// console.log(total);
//
// var totalYears = inventors.reduce(function(total, inventor) {
// return total + inventor.passed - inventor.year;
// }, 0);
// console.log(totalYears);
const totalYear = inventors.reduce( (total, inventor) => {
return total + inventor.passed - inventor.year;
}, 0);
console.log(totalYear);
// 他们所有人一共活了多少岁
// 下面三种写法是一样的效果
// var total = 0;
// for(var i = 0; i < inventors.length; i++) {
// total += inventors[i].passed - inventors[i].year;
// }
// console.log(total);
//
// var totalYears = inventors.reduce(function(total, inventor) {
// return total + inventor.passed - inventor.year;
// }, 0);
// console.log(totalYears);

const totalYear = inventors.reduce((total, inventor) => {
return total + inventor.passed - inventor.year;
}, 0);
console.log(totalYear);

// 5. Sort the inventors by years lived、
// 按照他们在世的岁数进行排序
const oldest = inventors.sort( (a, b) => {
const last = a.passed - a.year;
const next = b.passed - b.year;
return (next < last) ? -1 : 1;
});
console.table(oldest);
// 按照他们在世的岁数进行排序
const oldest = people.sort((a, b) => {
const last = a.passed - a.year;
const next = b.passed - b.year;
return (next < last) ? -1 : 1;
});
console.table(oldest);

// 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
// https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris

// 这个是超级酷的一个玩法,打开上面的网页。然后输入下面的语句,就可以筛选出页面中含有 'de' 这个词的所有街道的名称

// const category = document.querySelector('.mw-category');
// const links = Array.from(category.querySelectorAll('a'));
// const de = links
// .map(link => link.textContent)
// .filter(streetName => streetName.includes('de'));

// 下面是我在豆瓣里筛选书名里含有 CSS 的书的代码
// https://book.douban.com/tag/web
// const links = Array.from(document.querySelectorAll('.subject-list h2 a'));
// const book = links
// .map(link => link.title)
// .filter(title => title.includes('CSS'));

// 下面是我在豆瓣里筛选书名里含有 CSS 的书的代码
// https://book.douban.com/tag/web
// const links = Array.from(document.querySelectorAll('.subject-list h2 a'));
// const book = links
// .map(link => link.title)
// .filter(title => title.includes('CSS'));


// 7. sort Exercise
// Sort the people alphabetically by last name
// 按照姓氏的字母进行排序
const sortName = inventors.sort( (a, b) => {
return (a.last > b.last) ? 1 : -1;
})
console.table(sortName);
// 按照姓氏的字母进行排序
const sortName = inventors.sort((a, b) => {
return (a.last > b.last) ? 1 : -1;
})
console.table(sortName);


// 8. Reduce Exercise
// Sum up the instances of each of these
// 统计各个物品的数量
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ];
const reduce = data.reduce( (obj, item) => {
if( !obj[item] ) {
obj[item] = 0;
}
obj[item]++;
return obj;
}, {});
console.log(reduce);

// 统计各个物品的数量
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car',
'truck'
];
const reduce = data.reduce((obj, item) => {
if (!obj[item]) {
obj[item] = 0;
}
obj[item]++;
return obj;
}, {});
console.log(reduce);
</script>
</body>
</html>