var arr = ["поросёнок","щенок веселый", "щенок", "слон", "слон розовый", "лиса хитрая", "волк", "волк серый", "лиса"] ; var arr2=(",start,"+arr.join(',')+",end,").split(/,[^\s]*,/);arr2.pop();arr2.splice(0,1);arr2=arr2.join(',').split(/\s+/).join(':'); eval("var obj = {'" +(arr2.split(/([:,])/).join("'"))+"'}"); for(var i=0;i<arr.length;i++){ if(obj[arr[i]])arr[i]+=' '+obj[arr[i]]; } alert(arr), |
А eval считается медленным?А через регу нельзя сделать?
Я закончил свой первый скрипт.Теперь оптимизирую,доделываю,подт ачиваю. Спасибо огромное рони,danik.js и тебе огромное!!!:thanks: .Вы очень помогли-без вас бы не сделал... |
Цитата:
var arr = ["щенок веселый", "щенок ", "слон", "слон розовый", "лиса хитрая", "волк ", "волк серый", "лиса"] ; var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ; for(var i=0, l=arr.length; i<l; i++) { arr[i] = arr[i].replace(/^\S+ ?$/, function(a) { for(var j=0, len=m1.length; j<len; j++) { if(a==m1[j]||a==m1[j]+" ") return m1[j]+" "+m2[j] ; } ; }) ; } ; alert(arr) ; |
Hekumok,
var arr = ["поросёнок","щенок веселый", "щенок ", "слон", "слон розовый", "лиса хитрая", "волк ", "волк серый", "лиса"] ; var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ; for(var i=0, l=arr.length; i<l; i++) { arr[i] = arr[i].replace(/^\S+ ?$/, function(a) { for(var j=0, len=m1.length; j<len; j++) { if(a==m1[j]||a==m1[j]+" ") return m1[j]+" "+m2[j] ; } ; }) ; } ; alert(arr) ; |
Deff,
var arr = ["поросёнок","щенок веселый", "щенок ", "слон", "слон розовый", "лиса хитрая", "волк ", "волк серый", "лиса"] ; var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ; for(var i=0, l=arr.length; i<l; i++) { arr[i] = arr[i].replace(/^\S+ ?$/, function(a) { for(var j=0, len=m1.length; j<len; j++) { if(a==m1[j]||a==m1[j]+" ") return m1[j]+" "+m2[j] ; } ; return a ; }) ; } ; alert(arr) ; |
Hekumok, ☆
|
Смущает:
var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ; А если элементов в массиве-1000? |
dima***, Вытащил m1 - m2, ток во входной убрал лишние пробелы (Хотя m1m2 - информативней
var arr = ["поросёнок","щенок веселый", "щенок", "слон", "слон розовый", "лиса хитрая", "волк", "волк серый", "лиса"] ; var m1m2 =(",start,"+arr.join(',')+",end,").split(/,[^\s]*,/); m1m2.pop();m1m2.splice(0,1); var m1=m1m2.join(',').split(/\s.*?,/); var m2=m1m2.join(',').split(/(?:^|,).*?\s/);m2.splice(0,1); alert(m1); alert(m2); |
dima***, ну значит, будет цикл 1к раз проходить
|
Deff и Hekumok-спасибо большое!
|
Часовой пояс GMT +3, время: 19:27. |