Size: a a a

2021 March 22

СО

Сергей Овсянников... in pro.js
Рома Кочережченко
у меня "проектировка" базы данных, база данных с функциональными структурами — извращение, как по мне
Но, @zxc724 - всё правильно сказал, его варик - лучший
источник

РК

Рома Кочережченко... in pro.js
Сергей Овсянников
Дак у тебя сейчас не в функциональном стиле ниразу, чистая функция не должна исходные данные менять
Либо, как предложил человек выше, либо написать класс, в котором у тебя будет поле this.obje и в методе объекта менять this.obje
я и не планировал функционально
источник

РК

Рома Кочережченко... in pro.js
Сергей Овсянников
Но, @zxc724 - всё правильно сказал, его варик - лучший
ок понял
источник

РК

Рома Кочережченко... in pro.js
С классами все работает
class DB {
 constructor() {
   this.db = [
     { id: 0, name: 'Name' },
     { id: 1, name: 'Name2' },
     { id: 2, name: 'Name3' },
   ]
 }

 deleteInstanseById(idx) {
   this.db = this.db.filter((e) => e.id != idx)
 }
}

db = new DB()
db.deleteInstanseById(1)
console.log(db.db)
//измененный массив
источник

Д

Дмитрий in pro.js
Рома Кочережченко
С классами все работает
class DB {
 constructor() {
   this.db = [
     { id: 0, name: 'Name' },
     { id: 1, name: 'Name2' },
     { id: 2, name: 'Name3' },
   ]
 }

 deleteInstanseById(idx) {
   this.db = this.db.filter((e) => e.id != idx)
 }
}

db = new DB()
db.deleteInstanseById(1)
console.log(db.db)
//измененный массив
И какой смысл?
У тебя массив для изменения объявляется внутри класса.
А в приведённой выше задаче лежит на одном уровне с функцией.
Тоже самое что объявить массив в функции и вернуть его.
источник

EP

Evgenii Popov in pro.js
Рома Кочережченко
let obje = [
 { id: 0, name: 'Name' },
 { id: 1, name: 'Name2' },
 { id: 2, name: 'Name3' },
]
function deleteInstanseById(idx, o) {
 o = o.filter(function (e) {
   return e.id != idx
 })
}
deleteInstanseById(1, obje)
console.log(obje) // тот же массив
Здравствуйте, почему функция не удаляет элемент из массива?
Так делать конечно не стоит, но просто захотелось)))
let obje = [
 { id: 0, name: 'Name' },
 { id: 1, name: 'Name2' },
 { id: 2, name: 'Name3' },
]
Object.prototype.deleteInstanseById = function (idx){
 const arrIndex = this.findIndex((el)=>el.id === idx)
 arrIndex !== -1 && this.splice(arrIndex, 1);
}

obje.deleteInstanseById(1)
console.log(obje) // тот же массив без элемента
источник

М

Мирослав in pro.js
Привет, после использования import/export появилась ошибка. что не так?
источник

EP

Evgenii Popov in pro.js
Мирослав
Привет, после использования import/export появилась ошибка. что не так?
ES6 модули запускаются c политикой same-origin. Он подключён как тип module. Локальный сервер требуется просто в файловой системе не заработает. Или убрать type="module" - если конечно он будет работать после этого
источник

РК

Рома Кочережченко... in pro.js
Дмитрий
И какой смысл?
У тебя массив для изменения объявляется внутри класса.
А в приведённой выше задаче лежит на одном уровне с функцией.
Тоже самое что объявить массив в функции и вернуть его.
знаешь как работает store в большинстве фреймворках?
 createInstance(name) {
   return { id: last(this.db).id + 1, name: name }
 }

 addInstance(name) {
   this.db.push(this.createInstance(name))
 }
Я базу данных проектирую
источник

БО

Богдан Ошовський... in pro.js
Виктория
Тебе нужно каждый раз НОВЫЙ элемент ссылки создавать при добавлении. А так ты в цикле один и тот же элемент аппендишь, в итоге он у тебя в списке всегда один.
Не подскажешь как правильно сделать?
источник

СО

Сергей Овсянников... in pro.js
Рома Кочережченко
знаешь как работает store в большинстве фреймворках?
 createInstance(name) {
   return { id: last(this.db).id + 1, name: name }
 }

 addInstance(name) {
   this.db.push(this.createInstance(name))
 }
Я базу данных проектирую
Дак стор, как раз иммутабельный должен быть, т.е. данные не мутируются, а каждый раз записывается новый объект
А у тебя сейчас наоборот
источник

РК

Рома Кочережченко... in pro.js
Сергей Овсянников
Дак стор, как раз иммутабельный должен быть, т.е. данные не мутируются, а каждый раз записывается новый объект
А у тебя сейчас наоборот
ахах, и все извизиваются чтобы сделать его мутабельным по итогу, поэтому реакт для меня — какашка
источник

РК

Рома Кочережченко... in pro.js
Сергей Овсянников
Дак стор, как раз иммутабельный должен быть, т.е. данные не мутируются, а каждый раз записывается новый объект
А у тебя сейчас наоборот
и смысл записывать новый, если можно перезаписать старый, в реакте не функциональщина, в реакте ограничение без фичей взамен, которые дает функционалая парадигма. А если в целом, на фронте и даром не нужна иммутабельность
источник

СО

Сергей Овсянников... in pro.js
Рома Кочережченко
и смысл записывать новый, если можно перезаписать старый, в реакте не функциональщина, в реакте ограничение без фичей взамен, которые дает функционалая парадигма. А если в целом, на фронте и даром не нужна иммутабельность
Смысл в том, что проверить изменилась ли ссылка на объект - О(1), а проверка изменился ли объект - имеет линейную сложность
источник

РК

Рома Кочережченко... in pro.js
Сергей Овсянников
Смысл в том, что проверить изменилась ли ссылка на объект - О(1), а проверка изменился ли объект - имеет линейную сложность
Понял, пересмотрю свое хождение
источник

М

Мирослав in pro.js
Evgenii Popov
ES6 модули запускаются c политикой same-origin. Он подключён как тип module. Локальный сервер требуется просто в файловой системе не заработает. Или убрать type="module" - если конечно он будет работать после этого
запустил локальный сервер, заработало, спасибо!
источник

Д

Дмитрий in pro.js
По тому что 5!=='5'
источник

Д

Дмитрий in pro.js
источник

В

Виктория in pro.js
Юра
Извините за нубский вопрос: как мне разбить масив в столбик и вставить в html? Т.е. не инлайном, а блоком? 🤦
Юзани css гриды, и не нужно будет ничего js-ом разбивать.
Я календарь так делала. Охуенно удобно 👍
источник

Ю

Юра in pro.js
Виктория
Юзани css гриды, и не нужно будет ничего js-ом разбивать.
Я календарь так делала. Охуенно удобно 👍
Не могу) у меня webgl проект. Верстки всего на пару десятков строк, а js логики и рендера на 130к строк)
источник