Отображение / фильтрация ключей объекта от объекта к новому объекту в Javascript - PullRequest
0 голосов
/ 11 марта 2020

У меня есть объект с именем revenue:

var revenue = {
    "Month": "2011-01",
    "Week1_Revenue": "123.02",
    "week2_Revenue": "330.51",
    "Week3_Reenue": "201.98",
    "Month1_TotalRevenue": "700.12"
};

Я хочу отфильтровать и / или сопоставить некоторые атрибуты с новым объектом:

var filtered = {
    "Month": "2011-01",
    "Week1_Revenue": "123.02",
    "Month1_TotalRevenue": "700.12"
};

Я хочу специально отфильтровать Month, Week1_Revenue и Month1_TotalRevenue.

Я пытался что-то сделать, но он говорит мне, что .map не является функцией. Первоначально объект представлял собой строку, поэтому я назвал на ней JSON.parse():

var revenueMod = revenue.map(item => {
    return {
        "date": item['Month'],
        "w1_revenue": item['Week1_Revenue'],
        "total_revenue": item['Month1_Revenue']
    };
});

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

map() - это метод массива, а revenue - это объект здесь. Вы можете просто получить новый объект, например:

var revenue = { "Month": "2011-01", "Week1_Revenue": "123.02", "week2_Revenue": "330.51", "Week3_Reenue": "201.98", "Month1_TotalRevenue": "700.12"};

var filtered = {
  'Month': revenue['Month'],
  'Week1_Revenue': revenue['Week1_Revenue'],
  'Month1_TotalRevenue': revenue['Month1_TotalRevenue']
};

console.log( filtered )
1 голос
/ 11 марта 2020

Карта действительно не функция, потому что выручка - это не массив, а объект.

Это то, что вы пытаетесь сделать?

var revenueMod = {
  date: revenue['Month'],
  w1_revenue: revenue['Week1_Revenue'],
  total_revenue: revenue['Month1_Revenue']
}

Просто не включайте функцию карты.

...