Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перебор двух массивов с разными индексами. (https://javascript.ru/forum/misc/51249-perebor-dvukh-massivov-s-raznymi-indeksami.html)

Dima_Dimov 30.10.2014 10:34

Перебор двух массивов с разными индексами.
 
Добрый день, не могу решить данную задачу:
есть два массива:
1)первый целостный, допустим вида
[1,2,3,4,5,6,7,8,9,10]
2)второй я получаю динамически и он может выглядеть так:
[3,4,5,8,9]
то есть с пропущенными значениями.

Мне надо сделать условие вида:

если у второго массива под нулевым индексом значение не "1', то добвляем на страницу, скажем span с классом 'firstArrayValue', иначе span c классом 'secondArratValue' и перебор по всем значениям.
То есть на выходе мне нужен все значения первого массива, но с определенной меткой, если они встречаются во втором.

Из примера выше:
<span class="firstArray">1</span>
<span class="firstArray">2</span>
<span class="secondArray">3</span>
<span class="secondArray">4</span>
<span class="secondArray">5</span>
<span class="firstArray">6</span>
<span class="firstArray">7</span>
<span class="secondArray">8</span>
<span class="secondArray">9</span>
<span class="firstArray">10</span>

Первый массив фиксированный, и значения и индексы всегда одинаковые.

Подскажите как правильно их перебрать.

Спасибо.

рони 30.10.2014 11:25

Dima_Dimov,
:write: ... :cray:
<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .firstArray {
            background: #FF6666;
        }
        .secondArray {
            background: #339933
        }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
        $(function() {
            var firsArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                cecondArr = [3, 4, 5, 8, 9],
                $span = $.map(firsArr, function(el) {
                    var cls = $.inArray(el, cecondArr) != -1 ? 'secondArray' : 'firstArray';
                    el = $('<span/>', {
                        'text': el,
                        'class': cls
                    }).appendTo('body')
                    return el
                })
        });
    </script>
</head>

<body>
</body>
</html>

ksa 30.10.2014 11:37

Цитата:

Сообщение от Dima_Dimov
если у второго массива под нулевым индексом значение не "1', то добвляем на страницу, скажем span с классом 'firstArrayValue', иначе span c классом 'secondArratValue' и перебор по всем значениям.
...
Из примера выше:

Ты даже условие неправильно написал для этого "Из примера выше"... Из примера видно, что позиция элемента в массиве вообще никакой роли не играет. Проверяется простое наличие значения из одного массива в другом.

рони 30.10.2014 11:41

ksa,
:yes:

Dima_Dimov 30.10.2014 12:12

Спасибо большое за решение. Не знал о таком методе jquery. Ну ладно вам, все учатся, все тупят порой.


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