Найти из одного Массива данные цифры

144
12 апреля 2018, 12:40
let a = [123, 111, 523, 687, 147852369];
let odintripyat = []; //Если в массиве let a есть цифры 1, 3, 5, то переместить в данный массив
let dvachitireshest = []; //Если в массиве let a есть цифры 2, 4, 6, то переместить в данный массив
let semvosemdevyat = []; //Если в массиве let a есть цифры 7, 8, 9, то переместить в данный массив.

Если что-то непонятно, попробую объяснить по-другому.

Answer 1

let a = [123, 111, 523, 687, 147852369]; 
let odintripyat = []; //Если в массиве let a есть цифры 1, 3, 5, то переместить в данный массив 
let dvachitireshest = []; //Если в массиве let a есть цифры 2, 4, 6, то переместить в данный массив 
let semvosemdevyat = []; //Если в массиве let a есть цифры 7, 8, 9, то переместить в данный массив. 
for (let i in a) { 
  let num = a[i]; 
  let dir = 0; 
  while (num != 0 & dir != 7) { 
    switch (num % 10) { 
      case 1: 
      case 3: 
      case 5: 
        dir |= 1; 
        break; 
      case 2: 
      case 4: 
      case 6: 
        dir |= 2; 
        break; 
      case 7: 
      case 8: 
      case 9: 
        dir |= 4; 
        break; 
    } 
    num = Math.floor(num / 10); 
  } 
  if ((dir & 1) != 0) 
    odintripyat.push(a[i]); 
  if ((dir & 2) != 0) 
    dvachitireshest.push(a[i]); 
  if ((dir & 4) != 0) 
    semvosemdevyat.push(a[i]); 
} 
console.log('1, 3, 5: ' + odintripyat); 
console.log('2, 4, 6: ' + dvachitireshest); 
console.log('7, 8, 9: ' + semvosemdevyat);

Answer 2

let a = [123, 111, 523, 687, 147852369]; 
let odintripyat = []; //Если в массиве let a есть цифры 1, 3, 5, то переместить в данный массив 
let dvachitireshest = []; //Если в массиве let a есть цифры 2, 4, 6, то переместить в данный массив 
let semvosemdevyat = []; //Если в массиве let a есть цифры 7, 8, 9, то переместить в данный массив. 
const checkArr = [{ 
  re: /[135]/, 
  arr: odintripyat 
}, { 
  re: /[246]/, 
  arr: dvachitireshest 
}, { 
  re: /[789]/, 
  arr: semvosemdevyat 
}] 
a.forEach(num => { 
  checkArr.forEach(obj => { 
    if (obj.re.test(num + '')) obj.arr.push(num); 
  }) 
}) 
console.log('123:', odintripyat); 
console.log('246:', dvachitireshest); 
console.log('789:', semvosemdevyat);

READ ALSO
Как в манифесте запросить работу на системных страницах?

Как в манифесте запросить работу на системных страницах?

Есть ли возможность указать все страницы, включая системные, в content_scripts? Сейчас использую "matches": ["<all_urls>"], на всех обычных страницах всё...

146
Выбрать данные из двух таблиц mysql?

Выбрать данные из двух таблиц mysql?

Всем ПРивет! Есть две таблицы данных

206
ORM RedBeanPHP двойной запрос

ORM RedBeanPHP двойной запрос

Здравствуйте есть таблица messages в которой есть 2 поля sender и addressee в которых хранятся ID отправителя и ID получателя

225