Как преобразовать имя поля объекта в значение в Javascript - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь преобразовать объект типа {fieldName: "value"} в другой объект типа {field: "fieldName", value: "value"} самым простым способом, не зная заранее, что такое fieldName.

Я посмотрел ответв Как преобразовать строку как имя поля объекта в javascript , но, хотя это работает, оно основано на том факте, что fieldName уже известно. Работает следующее:

const key = Object.keys(searchObject)[0];
  return { field: key, value: searchObject[key] }

Но это выглядит громоздко, неуклюже и подвержено ошибкам. То, что я хотел бы, является эквивалентом

const obj = { field: [searchObject.key], ... }

Но это работает только тогда, когда [searchObject.key] является значением из searchObject.key.

1 Ответ

1 голос
/ 03 октября 2019

Переберите каждое свойство в вашем объекте и создайте еще одно свойство с ключом и значением в качестве отдельных свойств, затем передайте его в новый массив и верните его.

Пример:

var test_data = {fieldName: "name", fieldName2: "name2"}

function convert(data){
  var result = []
  for(var k in data){
    result.push({
      field: k,
      value: data[k]
    })
  }
  return result
}

console.log(convert(test_data))

// ------ ES6 ---------- //

console.log(
  Object.keys(test_data).map(a=>({field: a, value: test_data[a]}))
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...