Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2017, 20:19
Интересующийся
Отправить личное сообщение для Anna_Medvid Посмотреть профиль Найти все сообщения от Anna_Medvid
 
Регистрация: 07.01.2017
Сообщений: 22

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

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

Как это сделать? Подскажите, а то идей нет
Ответить с цитированием
  #2 (permalink)  
Старый 16.10.2017, 20:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Anna_Medvid,
какая нужна идея для return func(obj), может не мучатся?
Ответить с цитированием
  #3 (permalink)  
Старый 16.10.2017, 21:12
Интересующийся
Отправить личное сообщение для Anna_Medvid Посмотреть профиль Найти все сообщения от Anna_Medvid
 
Регистрация: 07.01.2017
Сообщений: 22

ок! а как эта функция будет перебирать значения объекта и например конкатенировать их в одну строку?
Ответить с цитированием
  #4 (permalink)  
Старый 16.10.2017, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Anna_Medvid,
Object.values
или
Object.keys
Массив: перебирающие методы
Ответить с цитированием
  #5 (permalink)  
Старый 16.10.2017, 22:26
Интересующийся
Отправить личное сообщение для Anna_Medvid Посмотреть профиль Найти все сообщения от Anna_Medvid
 
Регистрация: 07.01.2017
Сообщений: 22

Я делаю так:
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"
Ответить с цитированием
  #6 (permalink)  
Старый 16.10.2017, 22:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

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}));
*/
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2017, 22:51
Интересующийся
Отправить личное сообщение для Anna_Medvid Посмотреть профиль Найти все сообщения от Anna_Medvid
 
Регистрация: 07.01.2017
Сообщений: 22

спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция вызывается несколько раз KiberQ Общие вопросы Javascript 11 01.03.2017 15:45
Функция запускается кнопкой, но не запускается другой функцией или событием IndiraVarma Общие вопросы Javascript 6 30.09.2016 14:58
js рекурсивная функция с for.. in циклом frying Общие вопросы Javascript 6 25.08.2014 10:50
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01