У меня довольно большое приложение javascript/html, которое часто обновляется и получает много данных. Он работает очень быстро и плавно, но мне нужно теперь ввести функцию, которая будет обрабатывать любые входящие данные для специальных символов, и я боюсь, что будет много дополнительного времени обработки (а jsperf сейчас мертв).Замена пользовательских символов во время string.split()
Я сделаю запрос на получение файла .json через AJAX, а затем просто использую данные как есть. Но теперь мне нужно будет искать строки с # 2C (шестнадцатеричная запятая), потому что все входящие данные являются значениями, разделенными запятыми.
в File.json
{
names: "Bob, Billy",
likes : "meat,potatoes
}
Теперь мне нужно
{
names: "Bob, Billy",
likes : "meat#2Cbeear#2Cwine,potatoes
}
где # 2C (шест для запятой) запятая в строке.
У меня есть этот код, который работает отлично
var str = "a,b,c#2Cd";
var arr = str.split(',');
function escapeCommas(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].indexOf("#2C") !== -1) {
var s = arr[i].replace("#2C", ',');
arr[i] = s;
}
}
return arr;
}
console.log(escapeCommas(arr));
http://jsfiddle.net/5hogf5me/1/
У меня есть много функций, которые обрабатывают данные в формате JSON часто, как
var name = str.split(',')[i];
Мне интересно, как я мог бы расширить или перезаписать .split, чтобы автоматически заменить # 2C запятой.
Спасибо за любой совет.
Почему бы вам не заменить «# 2C» запятой, не используя 'split'? – Cristy
Пожалуйста, проверьте обновленный ответ – Ananth
@Cristy. Потому что это создаст другую запятую, которая создаст еще один индекс в массиве, который представляет собой совершенно разные данные. – BarryBones41