Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск и изменение чисел в строке (https://javascript.ru/forum/misc/54998-poisk-i-izmenenie-chisel-v-stroke.html)

Jluct 09.04.2015 13:18

Поиск и изменение чисел в строке
 
Всем привет. Подскажите пожалуйста как решить задачу.
Дан массив, в нём лежит css-свойство transform с заданной функцией трансформации, по типу следующего:
transform: scale(0.5, 0.5)
transform: matrix(3,15,4,-10,8,24)
transform: matrix(8,15,3,4,24,-10)
transform: scale(2, 1.5)
transform: translate(500px,450px)
transform: scale(0.7, 1.1)
Нужно увеличить значение на 11. Как это сделать ?

laimas 09.04.2015 13:29

А зачем же хранить так?
Если известно, что для transform, то уже достаточно было бы только scale(...), matrix(...), .... Но и это зачем, может быть лучше:
scale : [[0.5, 0.5], [2, 1.5]] и т.д.
И если что-то надо изменить, изменяйте.

Jluct 09.04.2015 14:11

Задание такое оригинальное. Привет из универа

ksa 09.04.2015 15:11

Цитата:

Сообщение от Jluct
Дан массив

Пока нет даже примера того массива...
Цитата:

Сообщение от Jluct
Нужно увеличить значение на 11.

Какое именно значение?

Jluct 09.04.2015 15:38

Цитата:

Сообщение от ksa
Пока нет даже примера того массива...

arrLab=["transform: scale(0.5, 0.5)", "transform: matrix(3,15,4,-10,8,24)", "transform: matrix(8,15,3,4,24,-10)", "transform: scale(2, 1.5)", "transform: translate(500px,450px)", "transform: scale(0.7, 1.1)", "transform: skew(30deg,15deg)", "transform: translate(151px,17px)", "transform: rotate(45deg)", "transform: rotate(17deg)", "transform: translate(170px,15px)", "transform: skew(25deg,5deg)", "transform: skew(2deg,17deg)", "transform: matrix(15,3,4,8,-10,24)", "transform: rotate(135deg)"]
Цитата:

Сообщение от ksa
Какое именно значение?

Увеличить числовое значение фун-ии трансформации на 11
Проще говоря ко всем числам 11 прибавить.

ksa 09.04.2015 16:11

Цитата:

Сообщение от Jluct
Проще говоря ко всем числам 11 прибавить.

Что сам уже для этого сделал? Где тестовый пример?

Jluct 09.04.2015 16:47

function fun3(param1,param2){
var a ;
var out = [];
for (i = 0; i < param1.length; i++){
if(param1[i].indexOf(param2)!=-1){
a=parseFloat(param1[i].match(/\((\d)\)/));
b=a+11;
out.push(param1[i].replace((/\((\d)\)/),b));
console.log(param1[i]);
}
}
return out;
}

console.log(fun3(arrLab7,"transform"))

theKingOfJava 09.04.2015 22:55

Цитата:

Сообщение от Jluct
Проще говоря ко всем числам 11 прибавить.

Вот это не оно?
arrLab=["transform: scale(0.5, 0.5)", "transform: matrix(3,15,4,-10,8,24)", "transform: matrix(8,15,3,4,24,-10)", "transform: scale(2, 1.5)", "transform: translate(500px,450px)", "transform: scale(0.7, 1.1)", "transform: skew(30deg,15deg)", "transform: translate(151px,17px)", "transform: rotate(45deg)", "transform: rotate(17deg)", "transform: translate(170px,15px)", "transform: skew(25deg,5deg)", "transform: skew(2deg,17deg)", "transform: matrix(15,3,4,8,-10,24)", "transform: rotate(135deg)"]

console.log(
arrLab.map(function(s){
 return s.replace(/-?\d+\.?\d*/g, function(n){return +n+11})
})
)


//>>>> [ 'transform: scale(11.5, 11.5)',
//>>>>   'transform: matrix(14,26,15,1,19,35)',
//>>>>   'transform: matrix(19,26,14,15,35,1)',
//>>>>   'transform: scale(13, 12.5)',
//>>>>   'transform: translate(511px,461px)',
//>>>>   'transform: scale(11.7, 12.1)',
//>>>>   'transform: skew(41deg,26deg)',
//>>>>   'transform: translate(162px,28px)',
//>>>>   'transform: rotate(56deg)',
//>>>>   'transform: rotate(28deg)',
//>>>>   'transform: translate(181px,26px)',
//>>>>   'transform: skew(36deg,16deg)',
//>>>>   'transform: skew(13deg,28deg)',
//>>>>   'transform: matrix(26,14,15,19,1,35)',
//>>>>   'transform: rotate(146deg)' ]

Все цифры не проверил, лень:)

Jluct 09.04.2015 23:43

Спасибо) Очень вовремя ))


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