29.09.2013, 14:29
|
Новичок на форуме
|
|
Регистрация: 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'
|
|
29.09.2013, 14:42
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от prostoix
|
как значения в (arrB) массива,заменить значениями совпадающими из (arrA) массива
|
- пройтись в цикле по arrB
- смотреть значения в arrA
- если они есть - менять элемент в arrB
|
|
29.09.2013, 15:06
|
|
Профессор
|
|
Регистрация: 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.
|
|
29.09.2013, 20:48
|
|
Профессор
|
|
Регистрация: 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);
|
|
24.10.2013, 17:36
|
Новичок на форуме
|
|
Регистрация: 29.09.2013
Сообщений: 2
|
|
Большое спасибо за ответы. Остановился на варианте "Тупа перебора" работает прекрасно =)
|
|
|
|