Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Начала изучать JS, помогите, пожалуйста сделать задания. (https://javascript.ru/forum/dom-window/58345-nachala-izuchat-js-pomogite-pozhalujjsta-sdelat-zadaniya.html)

NastyaSS 16.09.2015 22:23

Начала изучать JS, помогите, пожалуйста сделать задания.
 
1.Общие символы двух строк.
2.Разные символы двух строк.
3.Сколько раз в числе встречается каждая его цифра.
4.Наиболее популярные цифры числа -- (цифры, которые встречаются в числе наибольшее число раз).

Заранее спасибо:) :)

newtimebigtime 16.09.2015 23:13

Цитата:

Сообщение от NastyaSS
3.Сколько раз в числе встречается каждая его цифра.

map={}
number=123344456780
string=number+""
string.replace(/[\s\S]/g, function(symbol){
  map[symbol]=string.match(new RegExp(symbol, "g")).length
})

alert(JSON.stringify(map))

//>>>> {"0":1,"1":1,"2":1,"3":2,"4":3,"5":1,"6":1,"7":1,"8":1}

newtimebigtime 17.09.2015 01:55

Цитата:

Сообщение от NastyaSS
1.Общие символы двух строк.
2.Разные символы двух строк.

str1="abcdee"
str2="bcefydyy"

str3="123456"
str4="345678"

joint=function(str1, str2){
   var result=""
   str1.replace(/[\s\S]/g, function(symbol){
     var re=new RegExp(symbol)
     if(re.test(str2)&&!re.test(result)) result+=symbol
   })
   return result
}
   
alert("joint: "+joint(str1, str2))
alert("joint: "+joint(str3, str4))

diff=function(str1, str2){
   var result=""
   str1.replace(/[\s\S]/g, function(symbol){
     var re=new RegExp(symbol)
     if(!re.test(str2)&&!re.test(result)) result+=symbol
   })

   str2.replace(/[\s\S]/g, function(symbol){
     var re=new RegExp(symbol)
     if(!re.test(str1)&&!re.test(result)) result+=symbol
   })

   return result
}
 
alert("diff: "+diff(str1, str2))
alert("diff: "+diff(str3, str4))



//>>>> joint: bcde
//>>>> joint: 3456
//>>>> diff: afy
//>>>> diff: 1278

newtimebigtime 17.09.2015 02:56

Цитата:

Сообщение от NastyaSS
4.Наиболее популярные цифры числа -- (цифры, которые встречаются в числе наибольшее число раз).

map={}
number=33444567778
string=number+""
string.replace(/[\s\S]/g, function(symbol){
  map[symbol]=string.match(new RegExp(symbol, "g")).length
})
 

names=[]
values=[]

for(i in map){
  if(!map.hasOwnProperty(i)) break
  names.push(i); values.push(map[i]) 
}
delete i
 
maxNum=Math.max.apply(null, values)
result=[]

values.forEach(function(n, i){if(n===maxNum) result.push(names[i])})

alert(result)


//>>>> [ '4', '7' ]


Часовой пояс GMT +3, время: 15:41.