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) let lengths = array.map(item=>item.length); 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']; 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" // 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){ // 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('') } console.log(camelize("background-color")) console.log(camelize("list-style-image")) 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))