2015-09-18 12 views
5

Uczę się JS i będę wdzięczny za twoją pomoc. Chciałbym, aby nasze funkcje wyższego rzędu i callback były możliwe.Jak zwrócić obiekt z funkcji?

Zadanie

  1. Stwierdzenie te zmienne lokalne i uczynić je równa odpowiedniej informacji, imię, nazwisko, Linkedin, telefon, miasta.
  2. Przy użyciu konkatenacji ciągów, ustaw zmienną lokalną fullName równą twoim imionom i nazwiskom oddzielonym spacją.
  3. Utwórz zmienną lokalną linkedIn, ciąg będący linkiem do Twojego profilu LinkedIn.
  4. Zrób zmiennej lokalnej informacji który jest tablicą zawierającą swoją fullname, LinkedIn, telefon i miasto zmienne, w tej kolejności.
  5. Utwórz zmienną lokalną edukację, która jest tablicą zawierającą nazwę uczelni/uniwersytetu, dziedzinę studiów, liczbę całkowitą, która jest rokiem ukończenia (przewidywanego) ukończenia studiów. Upewnij się, że jest w tej kolejności.
  6. Zdefiniuj funkcję createApp, która przenosi informacje i edukację jako argumenty w tej kolejności. Powinno to zwrócić obiekt zawierający 2 klucze. Kluczowe nazwy muszą być takie same, jak nazwy zmiennych. Ustaw wartości tych kluczy na odpowiednie argumenty.

Kroki 1-5: Utworzony zmienne lokalne.

(function person() { 
    var firstName = "Rob", 
    lastName = "Johnson", 
    fullName = firstName + ", " + lastName, 
    linkedIn = 'https://www.linkedin.com/in/robjohnson', 
    phone = 3105559288, 
    city = 'Los Angeles', 
    info = [firstName, linkedIn, phone, city], 
    education = ['UWRock','Generals','2017']; 
})(); 

Etap 6. powrotu przedmiot zawierający 2 klucza. Kluczowe nazwy muszą być takie same, jak nazwy zmiennych. Ustaw wartości tych kluczy na odpowiednie argumenty. Nie mam pojęcia, zakładam, że to powinno być dynamiczne, a nie zakodowane na sztywno.

function createApp(info, education){ 
    var myObj = {}; 
    return(myObj); 
}; 

Chyba jestem przypuszczać, aby powrócić coś takiego za pomocą callback:

myObj { 
    info:'Rob', 
    education: ['UWRock','Generals','2017'] 
}; 
+0

http://stackoverflow.com/questions/32496076/javascript-return- with-colon pomoże – Tushar

+0

Czy możesz zapisać kod dla swojego przykładu? var resultObject = {...? Nie jest jasne, co chcesz osiągnąć: – Trike

+0

@Trike, zaktualizowałem pytanie i podałem przykład. –

Odpowiedz

0

I znalazłem rozwiązanie.

function list() { 
    var firstName = "Rob", 
     lastName = "Johnson", 
     fullName = firstName + ", " + lastName, 
     linkedIn = 'https://www.linkedin.com/in/robjohnson', 
     phone = 3105559288, 
     city = 'Los Angeles', 
     info = [firstName, linkedIn, phone, city], 
     education = ['UWRock','Generals','2017']; 

    createApp(info,education); 

} 

function createApp(info, education){ 
    var emptyObj = {}, 
     strArr = ['info','education'], 
     myArray = [info, education]; 

     for (var i = 0; i < myArray.length; i++){ 
     emptyObj[strArr[i]] = myArray[i]; 
     } 

    console.log(emptyObj); 

} 

list(); 

Wyniki są

[ Object ] { 
education: ["UWRock", "Generals", "2017"], 
info: ["Rob", "https://www.linkedin.com/in/robjohnson", 3105559288,"Los Angeles"] 
} 

Próbuję znaleźć lepsze podejście chociaż.

0

Powiedzmy, że masz następujące czynności

var GraphicalFilters = (function() { 
    var SelectedFilters = {};  
    return { 
     initializaAllFilters: function(value1,value2) { 
        SelectedFilters = {}; 
        SelectedFilters.value1 = value1; 
        SelectedFilters.value2 = value2; 
     }, 
     getAllFilters: function() { 
      return SelectedFilters; 
     } 
    }; 
})(); 

Można uzyskać obiektu poprzez następujące:

GraphicalFilters.initializaAllFilters(1,2); 
var $filters = GraphicalFilters.getAllFilters(); 
+0

To działa, ale nie spełnia wytycznych z wyzwania. Najpierw muszę utworzyć funkcję z dwoma argumentami. Ale dziękuję! –

Powiązane problemy