Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.03.2013, 18:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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)
,

Последний раз редактировалось Deff, 10.03.2013 в 18:31.
Ответить с цитированием
  #12 (permalink)  
Старый 10.03.2013, 18:45
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

А eval считается медленным?А через регу нельзя сделать?

Я закончил свой первый скрипт.Теперь оптимизирую,доделываю,подт ачиваю.

Спасибо огромное рони,danik.js и тебе огромное!!! .Вы очень помогли-без вас бы не сделал...
Ответить с цитированием
  #13 (permalink)  
Старый 10.03.2013, 18:52
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 03.06.2012
Сообщений: 513

Сообщение от dima*** Посмотреть сообщение
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) ;
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #14 (permalink)  
Старый 10.03.2013, 18:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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) ;
Ответить с цитированием
  #15 (permalink)  
Старый 10.03.2013, 19:02
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 03.06.2012
Сообщений: 513

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) ;
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #16 (permalink)  
Старый 10.03.2013, 19:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Hekumok, ☆
Ответить с цитированием
  #17 (permalink)  
Старый 10.03.2013, 19:12
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Смущает:
var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ;
А если элементов в массиве-1000?
Ответить с цитированием
  #18 (permalink)  
Старый 10.03.2013, 19:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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);

Последний раз редактировалось Deff, 10.03.2013 в 19:24.
Ответить с цитированием
  #19 (permalink)  
Старый 10.03.2013, 19:27
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 03.06.2012
Сообщений: 513

dima***, ну значит, будет цикл 1к раз проходить
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #20 (permalink)  
Старый 10.03.2013, 19:31
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Deff и Hekumok-спасибо большое!
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ разобраться со скриптом (картинка праздничного дня) Zhuk13@ya.ru Общие вопросы Javascript 7 08.12.2013 17:51
Помогите пожалуйста разобраться со скриптом Shalty Opera, Safari и др. 1 21.01.2013 14:41
помогите с скриптом для кнопки Павел Прокопенко Общие вопросы Javascript 4 01.04.2012 13:15
помогите с скриптом $12ANDRE12$ Firefox/Mozilla 2 12.05.2009 20:46
Помогите со скриптом Pilageen Общие вопросы Javascript 5 13.04.2009 13:13