JavaScript-объект со значением массива в простой объект - PullRequest
0 голосов
/ 25 октября 2019

У меня есть объект с массивом в качестве значения.

{"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]}

Как я могу преобразовать его в {"Name": "Saam Loan", "HitType": "Sanction"}

любая идея

Ответы [ 6 ]

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

Если все свойства обязательно находятся в значении массива, то вы можете сделать простой цикл for in или array.reduce

// Test data
let obj = {"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]};

// array.reduce function
let newObj1 = Object.keys(obj).reduce((accumulator, current) => {
  accumulator[current] = obj[current][0];
  return accumulator;
},{})

// OR for in loop
let newObj2 = {};
for(let key in obj) {
  newObj2[key] = obj[key][0];
}

console.log(newObj1) // {Name: "Saam Loan", HitType: "Sanction", ListNumber: "676", ListName: "EU"…}
console.log(newObj2) // {Name: "Saam Loan", HitType: "Sanction", ListNumber: "676", ListName: "EU"…}

Ссылки:

Array.prototype.reduce ()- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

для ... в - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

1 голос
/ 25 октября 2019
const obj = {"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]}
;

const keyIncludedInDesiredKeys = (key) => ['Name', 'HitType'].includes(key);

const extractedObject = Object.keys(obj).filter(keyIncludedInDesiredKeys).reduce((pr, curr) => ({...pr, [curr]: obj[curr][0]}),{});
0 голосов
/ 25 октября 2019

Попробуйте это прямолинейное решение:

var obj = {"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]};

for (const keys of Object.keys(obj)) {
  obj[keys] = obj[keys][0];
}

console.log(obj);
0 голосов
/ 25 октября 2019
function transform (target) {
    const result = {}
    for (const [key, value] of Object.entries(target)) {
        result[key] = value[0]
    }
    return result
}
0 голосов
/ 25 октября 2019
let obj = {"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]}

let finalAnswer = []

for(let x in obj ) {
   finalAnswer.push({
      [x]: obj[x].toString()
   })
}
0 голосов
/ 25 октября 2019
const obj = {"Name":["Saam Loan"],"HitType":["Sanction"],"ListNumber":["676"],"ListName":["EU"],"Score":["100"],"LastUpdateDate":["2019-10-17T00:00:00"],"IsPerson":["true"],"IsActive":["true"]};

const result = Object.entries(obj)
    .reduce((accumulator, [key, [value]]) => ({
        ...accumulator,
        [key]: value
    }), {})

Это вернет объект с каждым ключом из исходного объекта. Затем вы можете выбрать только те, которые вам нужны. Или сначала отфильтруйте, а затем создайте объект.

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