Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция работающая с обьектом (https://javascript.ru/forum/misc/70979-funkciya-rabotayushhaya-s-obektom.html)

Anna_Medvid 16.10.2017 20:19

Функция работающая с обьектом
 
Здравствуйте!

Подскажите пожалуйста. Нужно написать функцию manipulateObject(obj, func) которая будет принимать объект и еще одну функцию. Нужно вернуть результат вызова данной функции с данным объектом.

Как это сделать? Подскажите, а то идей нет:( :help:

рони 16.10.2017 20:50

Anna_Medvid,
какая нужна идея для return func(obj), может не мучатся?

Anna_Medvid 16.10.2017 21:12

ок! а как эта функция будет перебирать значения объекта и например конкатенировать их в одну строку?

рони 16.10.2017 21:47

Anna_Medvid,
Object.values
или
Object.keys
Массив: перебирающие методы

Anna_Medvid 16.10.2017 22:26

Я делаю так:
function manipulateObject(obj, func) {
  return func.call(obj);
};

function func() {
  Object.keys(this).reduce(function (previous, key) {
    return previous + this[key].value;
  }, 0);
}

console.log(manipulateObject({x: 1, y: 3, z:2}, func));


но здесь:
return previous + this[key].value;

this[key].value выдает ошибку " Cannot read property 'value' of undefined"

рони 16.10.2017 22:48

Anna_Medvid,
function manipulateObject(obj, func) {
  return func(obj);
};

function func(obj) {
  return Object.keys(obj).reduce(function (previous, key){
    return previous + obj[key];
  }, "");
}

console.log(manipulateObject({x: 1, y: 3, z:2}, func));

/*
function manipulateObject(obj) {
  return Object.values(obj).join("");
};
console.log(manipulateObject({x: 1, y: 3, z:2}));
*/

Anna_Medvid 16.10.2017 22:51

спасибо


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