Список для чтения

Задача легкая, но вдруг кому-нибудь понадобится решение

var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];
for(var i = 0; i < books.length; i++) {
  if(books[i].length >= minNumber && books[i].length <= maxNumber) {
    filteredBooks.push(books[i]);
    }
  }
6 лайков

А у меня так вышло:

var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

filteredBooks = books.filter((item) => item.length >= minNumber && item.length <= maxNumber);

Я смотрю этот тип сообщением выше чисто выё своими знаниями, т.к. решить согласно пройденным темам он не может lol и такая шляпа у него в каждой задаче

var j=0;

for (var i=0; i<books.length; i++) {
if ((books[i].length>=minNumber) && (books[i].length<=maxNumber)) {
filteredBooks[j] = books[i];
j++;
}
}
а у меня так вышло

7 лайков

Вот тоже быстро решил задачу ,но проверку не проходила:
var books = [‘Улисс’, ‘Маугли’, ‘Сияние’, ‘Ревизор’, ‘Гамлет’, ‘Обломов’, ‘Дюймовочка’, ‘Шантарам’, ‘Вий’, ‘Сильмариллион’, ‘Оно’];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

for(var i = 0; i<books.length;i++){

if(books[i].length>=minNumber&&books[i].length<=maxNumber){
filteredBooks.push(books[i])}
}
console.log(filteredBooks)
Потом убрал console.log и стало норм. Кто знает почему так? Или в платформе глюк?

Получилось снова так же, как у первого оратора :slight_smile:

Список для чтения
console.log('Программа "Список для чтения" by Nerealist');

var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];
console.log('В данном списке : ' + books + ' - ищем книги, в названии которых от ' + minNumber + ' до ' + maxNumber + ' букв ...');

for (var i = 0; i < books.length; i++) {
  if (books[i].length >= minNumber && books[i].length <= maxNumber) {
    filteredBooks.push(books[i]);
  }
}

console.log('... Идеальные для чтения следующие книги, Сэр : ' + filteredBooks);

P.s. нравится “украшать решение”, для меня так наглядней при выводе результата и проще тестировать с разными значениями :smiley:, а то может кого-то бесит

3 лайка
var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

for (var i = 0; i <= books.length - 1; i++) {
  if (books[i].length >= minNumber && books[i].length <= maxNumber) {
    filteredBooks.push(books[i]);
  }
}
1 лайк

Форматируйте код с помощью кнопки </> в редакторе, пожалуйста, чтобы он корректно отображался. И в остальных темах поправьте тоже.

1 лайк

посмотрите… так ?

Подскажите, можно это дело как то сократить?

books[i].length >= minNumber && books[i].length <= maxNumber

А то очень уже не красиво. Может через запятую или еще как? В пределах изученного или немного дальше. Но именно оставить сравнение.
И есть ли возможность как то записать books[i].length >= minNumber && <= maxNumber ?
Заранее спасибо и бобра ))

разве что вот так:

filteredBooks = books.filter(item => item.length >= minNumber && item.length <= maxNumber);

т.е. без цикла, с перебирающим методом. двойные (тройные и т.д.) неравенства в JS возможны, но работают они не так, как вы думаете, они последовательно вычисляют результат слева направо, вместо того, как это делают математики, воспринимая двойное неравенство как систему неравенств, своя логика в этом есть =) просто не очевидно для новичков

Спасибо)))

var books = [‘Улисс’, ‘Маугли’, ‘Сияние’, ‘Ревизор’, ‘Гамлет’, ‘Обломов’, ‘Дюймовочка’, ‘Шантарам’, ‘Вий’, ‘Сильмариллион’, ‘Оно’];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

books.reduce(function(sum, corrent) {
if (corrent.length <= maxNumber && corrent.length >= minNumber) {
filteredBooks.push(corrent);
}
}, 0);

var books = [‘Улисс’, ‘Маугли’, ‘Сияние’, ‘Ревизор’, ‘Гамлет’, ‘Обломов’, ‘Дюймовочка’, ‘Шантарам’, ‘Вий’, ‘Сильмариллион’, ‘Оно’];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

for (var i = 0; i <= books.length -1; i++) {
if (books[i].length >= minNumber && books[i].length <= maxNumber) {
filteredBooks.push(books[i]);
console.log(filteredBooks);
}
}

Вот мой код:

var books = [‘Улисс’, ‘Маугли’, ‘Сияние’, ‘Ревизор’, ‘Гамлет’, ‘Обломов’, ‘Дюймовочка’, ‘Шантарам’, ‘Вий’, ‘Сильмариллион’, ‘Оно’];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

let lengths = books.map(item => item.length);
// console.log(lengths);

for(var i = 0; i <= lengths.length; i++) {
if((minNumber <= lengths[i]) && (lengths[i] <= maxNumber)) {
filteredBooks.push(books[i]);
}
}

console.log(filteredBooks);

Мое решение.

var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];

for(var i = 0; i < books.length; i++){
  var bookNameLength = books[i].length;
  if(bookNameLength >= minNumber && bookNameLength <= maxNumber){
    filteredBooks.push(books[i]);
  }
}

console.log(filteredBooks);
Мое решние
var books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов',
'Дюймовочка',  'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
var minNumber = 3;
var maxNumber = 5;
var filteredBooks = [];


for (var i = 0; i <= books.length - 1; i++) {
   if (books[i].length >= minNumber && books[i].length <= maxNumber) {
     filteredBooks.push(books[i])
   }
}
let books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
let minNumber = 3;
let maxNumber = 5;
let filteredBooks = [];
for(let i = 0; i < books.length; i++) {
  if(books[i].length >= minNumber && books[i].length <= maxNumber) {
    filteredBooks.push(books[i])
    }
  }

Да, несложная задачка. Практически у всех одинаковое решение

let books = ['Улисс', 'Маугли', 'Сияние', 'Ревизор', 'Гамлет', 'Обломов', 'Дюймовочка', 'Шантарам', 'Вий', 'Сильмариллион', 'Оно'];
let minNumber = 3;
let maxNumber = 7;
let filteredBooks = [];

for (let i = 0; i <= books.length - 1; i++) {
  if (books[i].length >= minNumber && books[i].length <= maxNumber) {
    filteredBooks.push(books[i]);
  }
}

у меня другое решение

let books = [‘Улисс’, ‘Маугли’, ‘Сияние’, ‘Ревизор’, ‘Гамлет’, ‘Обломов’, ‘Дюймовочка’, ‘Шантарам’, ‘Вий’, ‘Сильмариллион’, ‘Оно’];
let minNumber = 3;
let maxNumber = 5;
let filteredBooks = [];

for (let i = 0; i < books.length; i++){
for (let j = minNumber; j <= maxNumber; j++) {
if(books[i].length === j){
filteredBooks.push(books[i])
}
}
}

for (let i = 0; i < books.length; i++) {
  if (books[i].length >= minNumber && books[i].length <= maxNumber) {
     filteredBooks.push(books[i]);
    };
  };