JavaScript:基于子项的值转换数组
在JavaScript中,我想转换一个数组JavaScript:基于子项的值转换数组,javascript,json,loops,filter,Javascript,Json,Loops,Filter,在JavaScript中,我想转换一个数组 [ { “大小”:“m”, “inStock”:对 }, { “大小”:“m”, “inStock”:对 }, { “大小”:“s”, “inStock”:对 }, { “大小”:“m”, “inStock”:错误 }, { “大小”:“m”, “inStock”:对 }, { “大小”:“xl”, “inStock”:对 }, { “大小”:“xl”, “inStock”:对 }, { “大小”:“m”, “inStock”:对 }, { “大小”
[
{
“大小”:“m”,
“inStock”:对
},
{
“大小”:“m”,
“inStock”:对
},
{
“大小”:“s”,
“inStock”:对
},
{
“大小”:“m”,
“inStock”:错误
},
{
“大小”:“m”,
“inStock”:对
},
{
“大小”:“xl”,
“inStock”:对
},
{
“大小”:“xl”,
“inStock”:对
},
{
“大小”:“m”,
“inStock”:对
},
{
“大小”:“xxl”,
“inStock”:错误
},
{
“大小”:“xxl”,
“inStock”:错误
},
{
“尺寸”:“xxxl”,
“inStock”:错误
},
{
“尺寸”:“xxxl”,
“inStock”:对
}
]
使用所有新奇的函数、对象和运算符:
var map = new Map();
arr.forEach( (el) => {
// make sure there is an entry in the mao
let item = map.get( el.size );
if( item ) {
// item is already set
item.inStock = el.inStock || item.inStock;
} else {
// new item
map.set( el.size, el );
}
});
let newArr = [ ... map.values() ];
这也可以使用
assign your array to var arr = [...your array];
var Newarray = arr.filter(function(data,i){
return data.inStock == true;
})
console.log(Newarray)