Вы можете filter
свои свойства объекта на основе массива columnNames
, а затем просто создать объект, используя Object.fromEntries
:
const result = rowData.map(s => Object.fromEntries(
Object.entries(s).filter(([k, v]) => columnNames.some(cl => cl.field == k))));
Пример:
let columnNames = [
{field : "Name"},
{field : "Address"},
{field : "Age"}
];
let rowData = [
{Name : "Praveen",Address : "aiff",Age : "12",w : "1",e : "8"},
{Name : "Akashay",Address : "xvn",Age : "15",w : "2",e : "7"},
{Name : "Bala",Address : "hjk",Age : "16",w : "3",e : "6"},
{Name : "Charu",Address : "sss",Age : "17",w : "4",e : "5"},
];
const result = rowData.map(s => Object.fromEntries(
Object.entries(s).filter(([k, v]) => columnNames.some(cl => cl.field == k))));
console.log(result);
Или более отлаживаемая версия:
const result = rowData.map(s => {
let allProperties = Object.entries(s);
let filteredProperties = allProperties.filter(([k, v]) =>
columnNames.some(cl => cl.field == k));
let result = Object.fromEntries(filteredProperties);
return result;
})
Пример:
let columnNames = [
{field : "Name"},
{field : "Address"},
{field : "Age"}
];
let rowData = [
{Name : "Praveen",Address : "aiff",Age : "12",w : "1",e : "8"},
{Name : "Akashay",Address : "xvn",Age : "15",w : "2",e : "7"},
{Name : "Bala",Address : "hjk",Age : "16",w : "3",e : "6"},
{Name : "Charu",Address : "sss",Age : "17",w : "4",e : "5"},
];
const result = rowData.map(s => {
let allProperties = Object.entries(s);
let filteredProperties = allProperties.filter(([k, v]) =>
columnNames.some(cl => cl.field == k));
let result = Object.fromEntries(filteredProperties);
return result;
})
Object.fromEntries - это метод, который преобразует список пар ключ-значение в объект.
Следующая строка означает, что мы filter () allProperies
array на основе columnNames
array.
метод some () возвращает true
, если какое-либо свойство columnNames
существует в allProperties
:
let filteredProperties = allProperties.filter(([k, v]) =>
columnNames.some(cl => cl.field == k));