Возврат нескольких объектов из функции - PullRequest
1 голос
/ 28 мая 2020

В моем коде я хочу, чтобы функция wrapInObject принимала два аргумента и инкапсулировала их в возвращаемый объект.

Мой код:

let FirstObject = {
    k: 'FirstObject'
}
let SecondObject = {
    l: 'SecondObject'
}

let wrapInObject = function(FirstObject, SecondObject){
    return [FirstObject, SecondObject]

}

wrapInObject('FirstObject', 'SecondObject') ska должен возвращать объект вроде { k: 'FirstObject', l: 'SecondObject' }.

Но мне возвращаются некоторые ошибки:

index.js
    ✓ exists
    ✓ is valid JavaScript
    ✓ defines wrapInObject of the type Function
    1) defines wrapInObject such that it returns an object when called with the arguments 'FirstObject' and 'SecondObject'
    2) defines wrapInObject such that it returns an object with the same content as { k: 'FirstObject', l: 'SecondObject' } when called with the arguments 'FirstObject' and 'SecondObject'
    3) defines wrapInObject such that it returns the correct value when called with some other number arguments

Что не так с моим кодом?

Ответы [ 4 ]

1 голос
/ 28 мая 2020

Похоже, вы хотите объединить эти объекты.

let wrapInObject = function(FirstObject, SecondObject){
    return {...FirstObject, ...SecondObject}
}

Что касается третьего тестового примера, вы можете сделать

let wrapInObject = function(...objects){
    return objects.reduce((acc, object) => {...acc, ...object}, {})
}
0 голосов
/ 28 мая 2020
let FirstObject = {
k: 'FirstObject'    
}
let SecondObject = {
l: 'SecondObject'
}

let wrapInObject = function(FirstObject, SecondObject){

    return {FirstObject, SecondObject}
    }

Возвращены только две последние ошибки:

defines wrapInObject such that it returns an object with the same content as { k: 'FirstObject', l: 'SecondObject' } when called with the arguments 'FirstObject' and 'SecondObject'

defines wrapInObject such that it returns the correct value when called with some other number arguments
0 голосов
/ 28 мая 2020

Проблема в том, что вы передаете strings вместо object в методе this. Исправлено.

let FirstObject = {
    k: 'FirstObject'
}
let SecondObject = {
    l: 'SecondObject'
}

let wrapInObject = function(FirstObject, SecondObject){
    return [FirstObject, SecondObject]

}
console.log(wrapInObject(FirstObject, SecondObject))
0 голосов
/ 28 мая 2020

Присвоение, указанное в вашем вопросе, кажется расплывчатым и плохо сформулированным, а описанные вами ошибки, похоже, относятся к строкам как к объектам. Это затрудняет оказание помощи (и, вероятно, затрудняет выполнение присваивания!).

В первую очередь проблема в том, что вы возвращаете массив, но при присваивании вам предлагается вернуть объект со свойствами k и l. Вместо:

return [FirstObject, SecondObject]; // <===== Incorrect

вернуть объект с запрошенными свойствами (k и l) с k, установленным на FirstObject, и l, установленным на SecondObject. Я не пишу код, который сделает это, потому что мне кажется, что тот, кто назначил вам это назначение, хочет вы написать этот код.

Вторая проблема заключается в том, что вы определяете два объекта, которые вам не нужны (те, что в верхней части кода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...