123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- let persons = [
- {name: "Иван", age: 17},
- {name: "Мария", age: 35},
- {name: "Алексей", age: 73},
- {name: "Яков", age: 12},
- ]
- // console.log(sort(persons, 'age', false))
- function sort(array, field, increase = true) {
- let arr = []
- let personsUpdate = []
- for (let i = 0; i < array.length; i++) {
- arr.push(array[i][field])
- }
- if (field === 'name') {
- arr.sort()
- } else if (field === 'age') {
- arr.sort(compareNumeric)
- function compareNumeric(a, b) {
- if (a > b) return 1;
- if (a == b) return 0;
- if (a < b) return -1;
- }
- }
- // console.log(arr)
- for (let i = 0; i < arr.length; i++) {
- for (let j = 0; j < array.length; j++) {
- if (arr[i] && arr[i] === array[j][field]) {
- personsUpdate.push(array[j])
- }
- }
- }
- if (!personsUpdate[0]) {
- personsUpdate = array
- }
- if (increase) {
- return personsUpdate
- } else {
- return personsUpdate.reverse()
- }
- }
- let data = ["1", {}, null, undefined, "500", 700]
- // console.log(arrayMap(data))
- function arrayMap(array) {
- return array.map(item => {if (typeof(item) === 'string') {
- return Number(item)
- } else {
- return item
- }})
- }
- let data2 = ["0", 5, 3, "string", null, 100n]
- // console.log(arrayReduce(data2))
- function arrayReduce(array) {
- let newArr = array.filter(item => typeof(item) === 'number')
- return newArr.reduce((sum, item) => sum + item, 0)
- }
- let phone = {
- brand: "meizu",
- model: "m2",
- ram: 2,
- color: "black",
- }
- // objectFilter(phone, (key, value) => key == "color" || value == 2)
- function objectFilter(object, func) {
- let result = {}
- for (const [key, value] of Object.entries(object)) {
- if (func(key, value)) {
- result[key] = value
- }
- }
- console.log(result)
- return result
- }
- // objectMap({name: "Иван", age: 17}, function(key, value) {
- // let result = {};
- // result[key+"_"] = value + "$";
- // return result;
- // })
- function objectMap(object, func) {
- let result = {}
- for (const [key, value] of Object.entries(object)) {
- result = {...result, ...func(key, value)}
- // Object.assign(result, func(key, value))
- }
- console.log(result)
- return result
- }
- // console.log(sumRec(4, 2, 3))
- function sumRec(length, a1, d) {
- if (length < 1) {
- return 0
- } else if (length === 1) {
- return a1
- } else {
- return a1 + sumRec((length - 1), a1 + d, d)
- }
- }
- htmlTreeRecWrapp()
- function htmlTreeRecWrapp() {
- let body = {
- tagName: 'body',
- attrs: {},
- children: [
- { tagName: 'div',
- attrs: {},
- children: [
- { tagName: 'span',
- attrs: {},
- children: 'Enter a data please'
- },
- { tagName: 'br',
- attrs: {}
- },
- { tagName: 'input',
- attrs: {
- type: 'text',
- id: 'name'
- }
- },
- { tagName: 'input',
- attrs: {
- type: 'text',
- id: 'surname'
- }
- }
- ]
- },
- { tagName: 'div',
- attrs: {},
- children: [
- { tagName: 'button',
- attrs: {
- id: 'ok'
- },
- children: 'OK'
- },
- { tagName: 'button',
- attrs: {
- id: 'cansel'
- },
- children: 'Cancel'
- }
- ]
- }
- ]
- }
- let str = ''
- htmlTreeRec(body, 0)
- function htmlTreeRec(object, level = 0) {
- str += `<${object.tagName}`
- if (object.attrs) {
- for (let [key, value] of Object.entries(object.attrs)) {
- str += ` ${key}="${value}"`
- }
- }
- if (object.children) {
- str += `>`
- if (typeof object.children === 'object') {
- for (let child of object.children) {
- htmlTreeRec(child, level + 1)
- }
- } else {
- str += `${object.children}`
- }
- str += `</${object.tagName}>`
- } else {
- str += `/>`
- }
- }
- console.log(str)
- document.write(str)
- }
|