Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2013, 14:29
Новичок на форуме
Отправить личное сообщение для prostoix Посмотреть профиль Найти все сообщения от prostoix
 
Регистрация: 29.09.2013
Сообщений: 2

Замена элементов массива элементами массива
Здравствуйте.
Прошу подсказать как значения в (arrB) массива,заменить значениями совпадающими из (arrA) массива.

var arrA = [['1','a'],['2','b'],['3','c'],['4','d']];
var arrB = ['1','4','2','8','1','6','5','2','4'];

Ответ должен получиться: // arrB = 'a','d','b','8','a','6','5','b','d'
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2013, 14:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от prostoix
как значения в (arrB) массива,заменить значениями совпадающими из (arrA) массива
- пройтись в цикле по arrB
- смотреть значения в arrA
- если они есть - менять элемент в arrB
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2013, 15:06
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Тупо перебором

function Arrays(A,B)
{
    var m = A.length, n = B.length;
  
    for (var i = 0; i < m; i++)
     { for (var j = 0; j < n; j++)
        { if (B[j] === A[i][0]) B[j] = A[i][1]; }
     }
 
    return B;
}

var arrA = [['1','a'],['2','b'],['3','c'],['4','d']],
    arrB = ['1','4','2','8','1','6','5','2','4'];
alert( Arrays(arrA,arrB) );

Последний раз редактировалось Demath, 29.09.2013 в 15:15.
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2013, 20:48
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от prostoix
var arrA = [['1','a'],['2','b'],['3','c'],['4','d']];
странный массив получился у Вас. Вообще массив отличается от объекта тем, что его ключи являются порядковыми номерами, поэтому проще было бы использовать var arrA = [0, 'a', 'b', 'c', 'd'];
и соответственно цикл замены
var arrA = [0, 'a', 'b', 'c', 'd'],
arrB = ['1','4','2','8','1','6','5','2','4'];
for(i = 0; i < arrB.length; i++) arrB[i] = arrA[arrB[i]] || arrB[i];
alert(arrB);
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2013, 17:36
Новичок на форуме
Отправить личное сообщение для prostoix Посмотреть профиль Найти все сообщения от prostoix
 
Регистрация: 29.09.2013
Сообщений: 2

Большое спасибо за ответы. Остановился на варианте "Тупа перебора" работает прекрасно =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод случайных элементов из массива в таблицу Narm0 Общие вопросы Javascript 10 06.08.2013 12:39
Выбор из массива трех элементов sonntagausgang Общие вопросы Javascript 2 26.05.2013 02:59
Определить количество отрицательных элементов массива Тип_1 Общие вопросы Javascript 3 25.06.2012 18:24
поочередный вывод элементов массива seosovest Общие вопросы Javascript 7 09.04.2012 10:47
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01