How can I convert this object

Viewed 133
const obj = {
  acc: 34.4,
  code: 26.94,
  effect: 0,
  level: "D",
  avg_upper_20: "C",
}

how to convert above object to this type array

[{subject: 'acc', score: 34.4}, {subject: 'code', score: 26.94}, {subject: 'effect', score: 0}]

not include level and avg_upper_20 property

please help

5 Answers
const result = Object.keys(obj)
  .filter(x => !['level', 'avg_upper_20'].includes(x))
  .map(x => ({subject: x, score: obj[x]}));

const obj = {
  acc: 34.4,
  code: 26.94,
  effect: 0,
  level: "D",
  avg_upper_20: "C",
}

const result = Object.keys(obj).filter(x => !['level', 'avg_upper_20'].includes(x)).map(x => ({subject: x, score: obj[x]}));

console.log(result);

Try the following with Object.entries() and .reduce():

const obj = { acc: 34.4, code: 26.94, effect: 0, level: "D", avg_upper_20: "C", };

const entries = Object.entries(obj);
const result = entries.reduce((a, [k, v]) => {
  if (k !== 'avg_upper_20' && k !== 'level') a.push({'subject': k, code: v});
  return a;
}, []);

console.log(result);

const obj = {
  acc: 34.4,
  code: 26.94,
  effect: 0,
  level: "D",
  avg_upper_20: "C",
};

const arr = [];
Object.entries(obj).forEach(([key, value]) => {
  if (key !== 'level' && key !== 'avg_upper_20') arr.push({ subject: key, score: value });
});

console.log(arr);

If statement excludes the two properties you mentioned

try this it may works

const obj = { acc: 34.4, code: 26.94, effect: 0, level: "D", avg_upper_20: "C", };

const arr = [];
Object.entries(obj).forEach(([key, value]) => {
  if (key !== 'level' && key !== 'avg_upper_20') arr.push({ subject: key, score: value });
});

console.log(arr);
let arr = [{
  acc: 34.4,
  code: 26.94,
  effect: 0,
  level: "D",
  avg_upper_20: "C",
}];

let newArr = [];
arr.forEach( (item, idx) => {
  let obj = JSON.parse(JSON.stringify(item)); // copy object to unlink from original
  delete obj['avg_upper_20']; // delete avg_upper_20
  delete obj['level']; // delete level
  newArr.push(obj); // push to new array
});

assuming you have an array of objects not a single loose object

Related