Size: a a a

JavaScript Noobs — сообщество новичков

2021 January 25

k

kek in JavaScript Noobs — сообщество новичков
🌸
У вас id элементов с единицы идет. Может поэтому
даже если поменять, результат не тот(
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
kek
Ребят, подскажите, пожалуйста. Нужно убрать все объекты с именем chair.

код:
const furniture = [
               { id: 1, type: 'chair', price: 52},
               { id: 2, type: 'chair', price: 76},
               { id: 3, type: 'table', price: 48},
               { id: 4, type: 'table', price: 52},
               { id: 5, type: 'chair', price: 32},
               { id: 6, type: 'cupboard', price: 52},
               { id: 7, type: 'chair', price: 88},
               { id: 8, type: 'cupboard', price: 66},
               { id: 9, type: 'chair', price: 52},
               { id: 10, type: 'cupboard', price: 88},
           ];
           

           function indexFunc() {
               furniture.forEach(function (item) {
                   if (item.type === 'chair') {
                       console.log('chair index: ',item.id)
                       furniture.splice(item.id, 1)
                       
                   }
               });
           }
           indexFunc();
   
           console.log(furniture);


или ссылка: https://jsfiddle.net/eubznfj0/2/

Почему forEach выводит не все объекты, а splice удаляет не то? Что я делаю не так?
сплайс мутирует исходный массив, поэтому когда ты удаляешь первый элемент и переходишь ко второму, второй элемент уже стал первым, а работаешь ты теперь с третьим
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
так что не меняй массив на ходу и используй фильтр, который скинули выше
источник

k

kek in JavaScript Noobs — сообщество новичков
Andrey Prog
var nochair = furniture.filter( item => item.type !== "chair" );
спасибо, можете подсказать еще, пожалуйста, как можно умножить цену на 2 у объектов типа cupboard? это идет как продолжение задания
источник

k

kek in JavaScript Noobs — сообщество новичков
Anton Permyakov
сплайс мутирует исходный массив, поэтому когда ты удаляешь первый элемент и переходишь ко второму, второй элемент уже стал первым, а работаешь ты теперь с третьим
спасибо за разъяснение, очень помогли)
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
kek
спасибо, можете подсказать еще, пожалуйста, как можно умножить цену на 2 у объектов типа cupboard? это идет как продолжение задания
почитай про методы массивов и в частности .map
источник

AP

Andrey Prog in JavaScript Noobs — сообщество новичков
kek
спасибо, можете подсказать еще, пожалуйста, как можно умножить цену на 2 у объектов типа cupboard? это идет как продолжение задания
nochair.forEach((item)=>{
 if (item.type === "cupboard"){
   item.price = item.price * 2;
 }
})
источник

k

kek in JavaScript Noobs — сообщество новичков
let results = fruits
                   .filter(item => item.type !== 'chair')
                   .map(item => {
                       return {
                           id: item.id,
                           type: item.type,
                           price: item.price * 2
                       }
                   })

если будет такая функция, то она пройдется по всем оставшимся элементам
как-то убрать и добавить элементы table в массив, к примеру? или, возможно, есть другие методы решения?
источник

k

kek in JavaScript Noobs — сообщество новичков
Andrey Prog
nochair.forEach((item)=>{
 if (item.type === "cupboard"){
   item.price = item.price * 2;
 }
})
спасибо огромное! извиняюсь за тупой вопрос, глаз замылился)
источник

k

kek in JavaScript Noobs — сообщество новичков
а с помощью каких функций можно поменять исходный массив? тут просто 2 варианта выполнения задания
насколько я понимаю, это можно сделать только при помощи метода splice
источник

AP

Andrey Prog in JavaScript Noobs — сообщество новичков
kek
а с помощью каких функций можно поменять исходный массив? тут просто 2 варианта выполнения задания
насколько я понимаю, это можно сделать только при помощи метода splice
источник

k

kek in JavaScript Noobs — сообщество новичков
еще раз большое спасибо)
источник

h

highsierra in JavaScript Noobs — сообщество новичков
всем привет, пишу валидацию для формы используя Validators.pattern(), может кто подсказать регулярку, которая будет проверять, что введёное в инпут значение кончается на gmail.com, а до этого может идти что угодно, может кто подсказать, что писать в pattern()? валидировать мыло перед этим будет Validators.email
источник

k

kek in JavaScript Noobs — сообщество новичков
инфа для потомков, так сказать. если кому-то придется модифицировать текущий массив методом splice, то нужно идти с конца:

const furniture = [
           { id: 1, type: 'chair', price: 52 },
           { id: 2, type: 'chair', price: 76 },
           { id: 3, type: 'table', price: 48 },
           { id: 4, type: 'table', price: 52 },
           { id: 5, type: 'chair', price: 32 },
           { id: 6, type: 'cupboard', price: 52 },
           { id: 7, type: 'chair', price: 88 },
           { id: 8, type: 'cupboard', price: 66 },
           { id: 9, type: 'chair', price: 52 },
           { id: 10, type: 'cupboard', price: 88 },
       ];

for (let i = furniture.length - 1; i >= 0; i -= 1) {
           if (furniture[i].type === 'chair') {
               furniture.splice(i, 1);
           }
       }
источник

k

kek in JavaScript Noobs — сообщество новичков
highsierra
всем привет, пишу валидацию для формы используя Validators.pattern(), может кто подсказать регулярку, которая будет проверять, что введёное в инпут значение кончается на gmail.com, а до этого может идти что угодно, может кто подсказать, что писать в pattern()? валидировать мыло перед этим будет Validators.email
источник

h

highsierra in JavaScript Noobs — сообщество новичков
спасибо!
источник

k

kek in JavaScript Noobs — сообщество новичков
highsierra
спасибо!
не за что :)
успехов!
источник

Z

ZHU in JavaScript Noobs — сообщество новичков
привет всем
импрортирую
import { interpolate } from 'https://unpkg.com/browse/polymorph-js@0.2.4/lib.es2015/interpolate.js';

выходит Uncaught SyntaxError: Cannot use import statement outside a module

как можно импортировать по ссылке
источник

F

Flide in JavaScript Noobs — сообщество новичков
как получить через количество "\n" внутри <div contenteditable="true"> по событию oninput ? (то есть, узнать количество строк редактируемо
источник

AF

Anastasiya F. in JavaScript Noobs — сообщество новичков
0
источник