2014-09-24 2 views
0

У меня есть массив в JQuery, который имеет некоторые значения. Теперь я хочу заменить символ из всех элементов массива, если он есть в массиве.Заменить на массив В JQuery без использования цикла

var arrayData = [ 
     "Safi Landmark Hotel and Suites", 
     "Safi Landmark Hotel Suites", 
     "Safi Landmark Hotel and Suites" 
]; 

Это мой массив теперь я хочу, чтобы заменить «и» из пунктов с «&» .Как мы можем сделать это без использования цикла.

+2

Независимо от того, какой механизм вы используете, он будет использовать итератор внутри, чтобы пройти через каждый элемент. Это вопрос синтаксиса? – Candide

+0

Это тоже наш вопрос, как мы можем это сделать без использования цикла !!! – Diode

+0

Я думаю, вам нужно определить, что вы подразумеваете под циклом? –

ответ

1

Попробуйте этот код с картой для поиска и замены:

var testdata = $.map([ 'a&b', 'abcz&mz', 'test' ], function(abc) { 
     return abc.replace('&',' and '); 
    }); 
     alert(JSON.stringify(testdata)); 
    }); 
+0

Это работает Спасибо u – Developer

+0

Работает, но пример заменяет '&' на 'и' не так, как исходный пост, поэтому стоит обновить. Он также заменит только первый экземпляр искомой строки. – GillesC

+0

Также стоит упомянуть об этом, и цикл 'map' будет медленнее, чем обычный' for'. – GillesC

0

Нет цикла, нет JQuery ...

var arrayData = [ 
    "Safi Landmark Hotel and Suites", 
    "Safi Landmark Hotel Suites", 
    "Safi Landmark Hotel and Suites" 
]; 

console.log(arrayData.join('|*|*|').replace(/and/g,'&').split('|*|*|')); 

пс: «| * | * | ' это просто какая-то уникальная .. разделитель

1

Вот скрипка http://jsfiddle.net/xj52nyj0/1/

Вы можете преобразовать массив в строку, используя JSON.jsringify();

, а затем заменить, как это.

var arrayData = [ 
     "Safi Landmark Hotel and Suites", 
     "Safi Landmark Hotel Suites", 
     "Safi Landmark Hotel and Suites" 
]; 
var x=JSON.stringify(arrayData); 
x = x.split('S').join("N"); 

Это не использует никакой петли.

Смежные вопросы