Преобразовать массив объектов в одну строку и вставить его в тот же массив

У меня есть формат массива, показанный ниже: -

questionValue = {
  others: [{
      inputValue: [{
        FormTypeValueArrayValue: [
          {
            form_type_value: "a"
          }, {
            form_type_value: "b"
          }, {
            form_type_value: "c"
          }, {
            form_type_value: "d"
          }
        ]
      }]

    },
    {
      inputValue: [{
        FormTypeValueArrayValue: [
          {
            form_type_value: "a"
          }, {
            form_type_value: "b"
          }, {
            form_type_value: "c"
          }, {
            form_type_value: "d"
          }
        ]
      }]
    }
  ]
}

Но необходимый формат в этом типе: -

questionLevel = {
  others: [{
    question: "",
    form_type_value: "a,b,c"
  } {
    question: "",
    form_type_value: "d,e,f"
  }],
}

У меня есть массив, который продолжает повторяться, поэтому в каждом массиве мне нужно form_type_value в простой строке, но в уважаемом массиве

вы можете поделиться своим кодом?

bhaumik shah 26.10.2018 09:27

мне нужно отправить весь код, потому что значения, которые я получаю, находятся в динамическом

vinuta 26.10.2018 09:32

не весь код, только то, как вы получаете данные

bhaumik shah 26.10.2018 09:35

questionValue = {другие: [{inputValue: [{FormTypeValueArrayValue: [{{form_type_value: "a"} {form_type_value: "b"} {form_type_value: "c"} {form_type_value: "d"}}]}] queValidtionsValue: 2 value: "название вопроса"}, {inputValue: [{FormTypeValueArrayValue: [{{form_type_value: "a"} {form_type_value: "b"} {form_type_value: "c"} {form_type_value: "d"}}]}] queValidtionsValue : 2 value: "название вопроса"}]}

vinuta 26.10.2018 09:58

это нормально для вас, если вы используете цикл for?

bhaumik shah 26.10.2018 09:59

Вы можете проверить формат сейчас,

vinuta 26.10.2018 10:22

нельзя ли это сделать без петли?

vinuta 26.10.2018 10:23
0
7
112
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
questionLevel.others = questionLevel.others.map((other)=>{
   other.form_type_value = other.formTypeValuesForEachQuestion
     .map( value => value.form_type_value).join(',');
   delete other.formTypeValuesForEachQuestion;
   return other;
});

ты мог бы попробовать это

но функция удаления удаляет поле ввода, formTypeValueForQuestion - это массив, в который я вставляю поле ввода вместе со значениями

vinuta 26.10.2018 10:39

Если вам нужно свойство formTypeValueForQuestion в новом массиве, вы можете удалить оператор delete из кода или присвоить сопоставленное значение новому массиву.

Vinaayakh 26.10.2018 11:06

Вы можете попробовать это решение: обратите внимание, что вам не нужны циклы, но внутри вызовов функций есть циклы, просто вы их не видите. Они на языковом уровне. Эти решения называются функциональными.

var questionValue = {
  others: [{
      inputValue: [{
        FormTypeValueArrayValue: [
          {
            form_type_value: "a"
          }, {
            form_type_value: "b"
          }, {
            form_type_value: "c"
          }, {
            form_type_value: "d"
          }
        ]
      }]

    },
    {
      inputValue: [{
        FormTypeValueArrayValue: [
          {
            form_type_value: "a"
          }, {
            form_type_value: "b"
          }, {
            form_type_value: "c"
          }, {
            form_type_value: "d"
          }
        ]
      }]
    }
  ]
}


var questionLevel = {};
questionLevel.others = questionValue.others.map((v) => {
                return { question: "", form_type_value: v.inputValue.map(innerValue => 
                innerValue.
                FormTypeValueArrayValue.map
                (obj => obj.form_type_value).join(','))};
});

console.log(questionLevel);

Другие вопросы по теме