Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача на выборку элементов. Период застоя. (https://javascript.ru/forum/misc/75568-zadacha-na-vyborku-ehlementov-period-zastoya.html)

kokojambo 21.10.2018 00:10

Задача на выборку элементов. Период застоя.
 
Ребят, вечер добрый!:help: :help: :help: :help:
Во время решении одной из задач, возникла проблема странного характера --- чекер проходит всевозможное тесты, но, к сожалению, не проходит по 2 условиям, а именно:
Есть догадка от "query вызываеться без select", но с этим все нормально, вроде. Если кто-то поможет решить --- буду весьма признателен.
Всем спасибо за внимание и приятного вечера!

рони 21.10.2018 00:27

kokojambo,
фильтрация массива обьектов по любым параметрам

kokojambo 21.10.2018 00:31

Цитата:

Сообщение от рони (Сообщение 496706)

СПАСИБО!!!!

рони 21.10.2018 00:59

kokojambo,
наличие в элементе свойств a или b
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
</head>

<body>
<ul class="list"></ul>
 <script>
function fn(arr, pattern) {
    return arr.filter(function(el) {
        return pattern.some(function(mask) {
            return Object.keys(mask).every(function(key) {
                return mask[key](el[key])
            })
        })
    })
};

var arr = [{a : 10, id : "a", b : 17}, {b : 12, id : "b"}, {c : 15, id : "c"}],
pattern = [{a :function(a) {
   return a !== undefined
}},{
b : function(b) {
   return b !== undefined
}}
],
arrFilter = fn(arr, pattern),
html = arrFilter.reduce(function(html, el) {
 return html +=  '<li class="item"  ><div>'+JSON.stringify(el, null, 4)+'</div></li>'
},"");
document.querySelector(".list").innerHTML = html;
</script>

</body>
</html>

рони 21.10.2018 01:01

kokojambo,
наличие в элементе свойств a и b
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
</head>

<body>
<ul class="list"></ul>
 <script>
function fn(arr, pattern) {
    return arr.filter(function(el) {
        return pattern.some(function(mask) {
            return Object.keys(mask).every(function(key) {
                return mask[key](el[key])
            })
        })
    })
};

var arr = [{a : 10, id : "a", b : 17}, {b : 12, id : "b"}, {c : 15, id : "c"}],
pattern = [{a :function(a) {
   return a !== undefined
},
b : function(b) {
   return b !== undefined
}}
],
arrFilter = fn(arr, pattern),
html = arrFilter.reduce(function(html, el) {
 return html +=  '<li class="item"  ><div>'+JSON.stringify(el, null, 4)+'</div></li>'
},"");
document.querySelector(".list").innerHTML = html;
</script>

</body>
</html>


Часовой пояс GMT +3, время: 20:12.