Men*_*nyg 10 javascript arrays object ecmascript-6
我有一个数组如下:
items = [
{"year": 2010, "month": 11, "day":23}
{"year": 2009, "month": 10, "day":15}
{"year": 2009, "month": 10, "day":10} //added after my edit below
]
Run Code Online (Sandbox Code Playgroud)
我只想像这样创建两列新数组:
newArarry = [
{"year": 2010, "month": 11}
{"year": 2009, "month": 10}
]
Run Code Online (Sandbox Code Playgroud)
目前,我正在尝试使用.map(),但无法正常工作:
const newArray = [];
newArray.map({
year: items.year,
month: items.month
});
Run Code Online (Sandbox Code Playgroud)
编辑
在遵循以下答案之一之后,我意识到我忘了提到我也需要将结果过滤为唯一的行。现在,我仅选择年和月列,因此获得了多个重复行
目前我正在尝试使用.map()并且它不起作用
0,您正在尝试在其上进行映射let items = [{"year": 2010, "month": 11, "day":23},{"year": 2009, "month": 10, "day":15}]
let final = items.map(({day,...rest}) => ({...rest}))
console.log(final)Run Code Online (Sandbox Code Playgroud)
Array 的.map()方法接受一个回调,其返回值将用于构造新数组。你错误地传递给它的是一个对象而不是一个函数。要解决此问题,您可以使用.map()一些对象解构:
const items = [
{"year": 2010, "month": 11, "day":23},
{"year": 2009, "month": 10, "day":15}
];
const result = items.map(({ year, month }) => ({year, month}));
console.log(result);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
您打的电话不Array#map正确:
items。Array#map 返回一个新数组,该数组是针对原始数组的每个成员执行该函数的结果。 items = [
{"year": 2010, "month": 11, "day":23},
{"year": 2009, "month": 10, "day":15}
]
const newArray = items.map(item => ({
year: item.year,
month: item.month
}));
console.log(newArray)Run Code Online (Sandbox Code Playgroud)
甲映射操作从A变换到B -在这种情况下,从{"year": 2010, "month": 11, "day":23}给{ "year": 2010, "month": 11 }。.map在数组上运行会为您提供映射操作的结果。