Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получение доступа к элементам массива который является свойством объекта (https://javascript.ru/forum/misc/65619-poluchenie-dostupa-k-ehlementam-massiva-kotoryjj-yavlyaetsya-svojjstvom-obekta.html)

black_viper 29.10.2016 22:26

Получение доступа к элементам массива который является свойством объекта
 
Добрый день! Подскажите пожалуйста как решить следующую проблему:
Есть объект свойствами которого являются одномерные массивы:
var cas_place = {
monitor:[2,3],
router:[1,5]
mfu:[1,3]
};

Необходимо в умножить все целочисленные значения всех элементов всех массивов на одно и тоже число.

black_viper 29.10.2016 22:39

Попытался сделать так, но что-то не работает

black_viper 29.10.2016 22:39

function getQuantity(n,obj){
for ( var key in obj)
{
if (isArray(obj[key]))
for (i=0;i<obj[key].length;i++)
{

alert(obj[key[i]]);

}

}

}

Lemme 29.10.2016 22:44

var cas_place = {
  monitor:[2,3],
  router:[1,5],
  mfu:[1,3]
};

let factor = 10

for (let key in cas_place) {
	if (Array.isArray(cas_place[key])) {
  	cas_place[key] = cas_place[key].map(n => ~~n === n ? n * factor : n)
  }
}

alert(JSON.stringify(cas_place))

Aetae 29.10.2016 22:47

black_viper, obj[key[i]] -> obj[key][i]

Lemme, тыб ещё генераторы заюзал, а потом через аглифай прогнал. -_-

рони 29.10.2016 22:49

black_viper,
var cas_place = {
 monitor:[2,3, 'test', 'red'],
 router:[1,5],
 mfu:[1,3]
 };
function foo(data, num) {
    Object.keys(data).forEach(function(key) {
        data[key].forEach(function(el,i) {
           el == +el && (data[key][i] = el * num)
        })
    })
};
foo(cas_place, 5)
alert(JSON.stringify(cas_place))

Lemme 29.10.2016 22:50

Aetae,
Цитата:

тыб ещё генераторы заюзал, а потом через аглифай прогнал. -_-
кек, вроде ничего сверхъестественного нет)

Aetae 29.10.2016 22:55

Lemme, человек очевидно только начал разбираться, судя по ошибке, а ты ему стрелочные функции, let и, что хуже, хаки типа ~~n === n.

Ну и это не говоря о том, что замена массивов на новые мапнутые - не есть гуд в любом случае, мало ли на эти массивы где-то ещё ссылки есть.

рони это тоже касается.

Люди - обсфукаторы прямо, таким только отпугивать новичков от js. Или это и есть ваш хитрый план?))

Lemme 29.10.2016 23:08

Цитата:

человек очевидно только начал разбираться
Aetae, я не видел его ответа, когда писал, возможно es6 был излишним, но в любом случае, люди на данном форуме делятся на 3 типа
1) Те. кто умееют
2) Те, кто задают вопрос и копипастят ответ
3) Те, кто задают вопрос и пытаются разобраться в ответе.

явно, тс не относится к 1му типу, если ко второму, то тут все ясно, если к третьему, то он загуглит хак ~~n и es6 синтаксис.

Цитата:

не есть гуд в любом случае, мало ли на эти массивы где-то ещё ссылки есть.
Это да, но про новый объект не было ни слова :)


Цитата:

Люди - обсфукаторы прямо, таким только отпугивать новичков от js. Или это и есть ваш хитрый план?))
:D это лол

black_viper 29.10.2016 23:33

Большое спасибо, а как сделать так, чтобы он не только целочисленные значения умножал, есть еще и с запятой.


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