Как разрезать значение, которое находится внутри и obj, и передать следующему методу, который использует его в качестве объекта

#javascript

Вопрос:

У меня есть конкретная ситуация, когда у меня есть метод, который получает объект следующим образом

 async ({ locale }, ctx) => {
      const lang = await LanguageService(ctx).getLanguage({
        locale,
      });
      return lang.direction ? 'rtl' : 'ltr';
    },
 

Это { locale } равносильно запросу as locale: en_US .

Следующий метод, который мне нужно использовать getLanguage , принимает { locale } , но я должен передать только тот en .

Поэтому я подумал сделать срез, но если я отправлю его, например

 const sliced = locale.slice(0,2)
const lang = await LanguageService(ctx).getLanguage({
            sliced, // or locale: sliced
          });
 

Из следующего метода локаль отображается как неопределенная, и я понятия не имею, как ее передать, только en в этой ситуации у меня есть

Способ getLanguage

 async getLanguage({ id, locale }) {
    console.log('locale: ', locale);
    if (!id amp;amp; !locale) {
      const errorMessage = 'Specify ID or locale';
      throw new ApolloError(errorMessage);
    }

    const filter = id ? { id } : { locale };

    try {
      return await this.withDAO(({ languages }) =>
        languages.selectFirst(filter)
      );
    } catch (error) {
      throw new ApolloError(error.message);
    }
  }
 

Этот метод нуждается { locale } , и мне нужно пройти en , а не en_US

Я понятия не имею, как этого достичь, так как, когда я достигаю этого вышеописанного метода, console.log(языковой стандарт) отображается неопределенным, когда я использую slice.

Есть способ, которым я могу использовать этот объект так, как мне нужно

Комментарии:

1. К вашему сведению, { sliced } и { locale: sliced } это не одно и то же, и может объяснить, почему вы получаете undefined .

2. Да, но и то, и другое дает мне неопределенность во втором методе, а также то, что проблема, которую я пробовал, — это другая комбинация, всегда попадающая в неопределенность

3. это правильно — { sliced } это сокращение { sliced: sliced } , которое означает , что свойство, которое вы передаете функции, есть sliced , но вы пытаетесь получить доступ locale (который есть undefined ). const lang = await LanguageService(ctx).getLanguage({ locale: sliced }); должен работать здесь

4. Проблема здесь в том, что метод принимает языковой стандарт, так как же это сделать?

5. Я не могу передать нарезку, так как я должен передать язык, так как en это моя главная проблема