javascript-learner/5.4ArrayMethod/t.js

180 lines
4.4 KiB
JavaScript
Raw Permalink Normal View History

2024-06-16 21:02:11 +02:00
array = ["Bilbo", "Gandalf", "Nazgul"];
array.forEach((item, index, array) =>{
console.log(`${item} is at index ${index} in ${array}`)
});
console.log(`arr.indexOf(Bilbo): ${array.indexOf("Bilbo")}`)
console.log(`arr.indexOf(Bilbo): ${array.includes("Bilbo")}`)
let fruits = ['Apple', 'Orange', 'Apple']
console.log(`fruits.indexOf('Apple'): ${fruits.indexOf('Apple')}`)
console.log(`fruits.lastIndexOf('Apple'): ${fruits.lastIndexOf('Apple')}`)
// arr.find(fn)
let users = [
{id: 1, name: "xingzhesun"},
{id: 2, name: "zhexingsun"},
{id: 3, name: "sunxingzhe"},
];
let user1 = users.find(item => item.id == 1);
let user2 = users.findLastIndex(item => item.id == 1);
console.log(user1.name);
console.log(user2.name);
// arr.filter
let someUsers = users.filter(user => user.id < 3);
console.log(someUsers)
someUsers = users.filter(function(item, index, array){
if (item.id < 3){
return true;
}
})
console.log(someUsers);
// arr.map(fn)
2024-06-16 21:03:42 +02:00
let lengths = array.map(item=>item.length);
2024-06-16 21:21:58 +02:00
console.log(lengths);
// arr.sort(fn)
function compare(a, b){
if (a > b) return 1;
if (a == b) return 0;
if (a < b) return -1;
}
arr = [15, 2 ,1];
console.log(`arr.sort(): ${arr.sort(compare)}`);
console.log(`arr.sort(): ${arr.sort((a,b) => a - b)}`);
let countries = ['Österreich', 'Andorra', 'Vietnam'];
2024-06-16 21:34:24 +02:00
console.log(countries.sort((a,b) => a.localeCompare(b)))
// arr.reverse()
countries = countries.reverse()
console.log(countries)
// arr.split() and arr.join()
let names = "Bilbo, Gandalf, Nazgul";
let nameLists = names.split(', ');
for(let name of nameLists){
console.log(`A message to ${name}`);
}
// [LOG - 6/16/24 21:32:14] "A message to Bilbo"
// [LOG - 6/16/24 21:32:14] "A message to Gandalf"
// [LOG - 6/16/24 21:32:14] "A message to Nazgul"
nameLists = names.split(', ', 2);
for(let name of nameLists){
console.log(`A message to ${name}`);
}
// [LOG - 6/16/24 21:32:14] "A message to Bilbo"
// [LOG - 6/16/24 21:32:14] "A message to Gandalf"
console.log(`nameLists: ${nameLists.join('; ')}`)
// [LOG - 6/16/24 21:33:45] "nameLists: Bilbo; Gandalf"
2024-06-16 23:04:25 +02:00
// arr.reduce(fn) arr.reduceRight(fn)
let numbers = [1,2,3,4,5]
console.log(numbers.reduce(function(sum, current){
return sum + current;
}, 0));
console.log(numbers.reduce((sum, cur) => sum + cur, 0));
console.log(numbers.reduceRight((sum, cur) => sum + cur, 0));
// Array.isArray()
console.log(Array.isArray(countries))
function camelize(str){
2024-06-21 22:04:48 +02:00
// words = str.split('-')
// for(let i = 1; i < words.length; i++){
// words[i] = words[i][0].toUpperCase() + words[i].slice(1);
// }
// return words.join('');
return str.split('-')
.map((word, index) => index == 0 ? word: word[0].toUpperCase() + word.slice(1))
.join('')
2024-06-16 23:04:25 +02:00
}
console.log(camelize("background-color"))
console.log(camelize("list-style-image"))
2024-06-21 22:04:48 +02:00
console.log(camelize("-webkit-translation"))
function filterRange(arr, a, b){
return arr.filter(ele => ele >= a && ele <= b);
}
arr = [5, 3, 8, 1];
let filtered = filterRange(arr, 1, 4);
console.log(filtered)
console.log(arr)
function copySorted(arr){
return arr.slice().sort();
}
arr = ["HTML", "JavaScript", "CSS"];
let sorted = copySorted(arr);
console.log(sorted)
console.log(arr)
function Calculator(){
this.methods = {
"-": (a,b) => a-b,
"+": (a,b) => a+b
};
this.calculate = function(str){
let split = str.split(' ');
a = +split[0];
op = split[1];
b = +split[2];
if (!this.methods[op] || isNaN(a) || isNaN(b)){
return NaN;
}
return this.methods[op](a,b);
}
this.addMethod = function(name, func){
this.methods[name] = func;
}
}
let john = { name: "John", surname: "Smith", id: 25 };
let pete = { name: "Pete", surname: "Hunt", id: 30 };
let mary = { name: "Mary", surname: "Key", id: 28 };
users = [ john, pete, mary ];
names = users.map((user) => user.name)
console.log( names ); // John, Pete, Mary
let usersMapped = users.map((user) => {
return {
fullName: user.name + ' ' + user.surname,
id: user.id
}
}
);
console.log(usersMapped[0].id)
console.log(usersMapped[0].fullName)
function sortByAge(arr){
return arr.sort((userA, userB) => userA.id - userB.id)
}
sortByAge(users)
console.log(users[0].name)
console.log(users[1].name)
console.log(users[2].name)
function getAverageAge(arr){
return arr.reduce(function(sum, cur){
sum = sum + cur.id;
},0) / arr.length;
}
console.log(getAverageAge(users))