对象数组上的下划线循环修改某些对象并删除某些对象
underscore loop over array of objects modify certain objects and remove some objects
假设我有对象数组,
[{"month":"03-2016","isLate":"N","transactionCount":4,"transactionAmount":8746455},{"month":"05-2016","isLate":"N","transactionCount":5,"transactionAmount":-40004952945.61},{"month":"06-2016","isLate":"N","transactionCount":1,"transactionAmount":100000},{"month":"04-2016","isLate":"N","transactionCount":6,"transactionAmount":-117189.89},{"month":"02-2016","isLate":"N","transactionCount":4,"transactionAmount":-5331000},{"month":"04-2016","isLate":null,"transactionCount":2,"transactionAmount":-4888.89},{"month":"03-2016","isLate":null,"transactionCount":3,"transactionAmount":5000}]
下划线或 javascript 中是否有一个函数,我可以在其中循环项目,根据某些条件,删除某些对象,否则修改对象(向对象添加更多信息)和 return数据。
是的,有 filter()
var resArray = myArray.filter(x => x.transactionCount != 1);
在这个例子中,我删除了 属性 个交易计数 === 1
的元素
你可以用普通的 JavaScript:
例如:
var input = [
{
"month": "03-2016",
"isLate": "N",
"transactionCount": 4,
"transactionAmount": 8746455
},
{
"month": "05-2016",
"isLate": "N",
"transactionCount": 5,
"transactionAmount": -40004952945.61
},
{
"month": "06-2016",
"isLate": "N",
"transactionCount": 1,
"transactionAmount": 100000
},
{
"month": "04-2016",
"isLate": "N",
"transactionCount": 6,
"transactionAmount": -117189.89
},
{
"month": "02-2016",
"isLate": "N",
"transactionCount": 4,
"transactionAmount": -5331000
},
{
"month": "04-2016",
"isLate": null,
"transactionCount": 2,
"transactionAmount": -4888.89
},
{
"month": "03-2016",
"isLate": null,
"transactionCount": 3,
"transactionAmount": 5000
}
];
// Helper array to translate month number to month name
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
input = input
// only get the entries which don't have isLate=N:
.filter( o => o.isLate !== 'N' )
// add a property "mm":
.map( o => Object.assign(o, { mm: monthNames[+o.month.substr(0,2)-1] }) );
// Output result
console.log(input);
对于不支持 ES6 的 JavaScript 环境,将 input =
语句替换为:
input = input
// only get the entries which don't have isLate=N:
.filter( function (o) {
return o.isLate !== 'N';
})
// add a property "mm":
.map( function (o) {
o.mm = monthNames[+o.month.substr(0,2)-1];
return o;
});
假设我有对象数组,
[{"month":"03-2016","isLate":"N","transactionCount":4,"transactionAmount":8746455},{"month":"05-2016","isLate":"N","transactionCount":5,"transactionAmount":-40004952945.61},{"month":"06-2016","isLate":"N","transactionCount":1,"transactionAmount":100000},{"month":"04-2016","isLate":"N","transactionCount":6,"transactionAmount":-117189.89},{"month":"02-2016","isLate":"N","transactionCount":4,"transactionAmount":-5331000},{"month":"04-2016","isLate":null,"transactionCount":2,"transactionAmount":-4888.89},{"month":"03-2016","isLate":null,"transactionCount":3,"transactionAmount":5000}]
下划线或 javascript 中是否有一个函数,我可以在其中循环项目,根据某些条件,删除某些对象,否则修改对象(向对象添加更多信息)和 return数据。
是的,有 filter()
var resArray = myArray.filter(x => x.transactionCount != 1);
在这个例子中,我删除了 属性 个交易计数 === 1
的元素你可以用普通的 JavaScript:
例如:
var input = [
{
"month": "03-2016",
"isLate": "N",
"transactionCount": 4,
"transactionAmount": 8746455
},
{
"month": "05-2016",
"isLate": "N",
"transactionCount": 5,
"transactionAmount": -40004952945.61
},
{
"month": "06-2016",
"isLate": "N",
"transactionCount": 1,
"transactionAmount": 100000
},
{
"month": "04-2016",
"isLate": "N",
"transactionCount": 6,
"transactionAmount": -117189.89
},
{
"month": "02-2016",
"isLate": "N",
"transactionCount": 4,
"transactionAmount": -5331000
},
{
"month": "04-2016",
"isLate": null,
"transactionCount": 2,
"transactionAmount": -4888.89
},
{
"month": "03-2016",
"isLate": null,
"transactionCount": 3,
"transactionAmount": 5000
}
];
// Helper array to translate month number to month name
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
input = input
// only get the entries which don't have isLate=N:
.filter( o => o.isLate !== 'N' )
// add a property "mm":
.map( o => Object.assign(o, { mm: monthNames[+o.month.substr(0,2)-1] }) );
// Output result
console.log(input);
对于不支持 ES6 的 JavaScript 环境,将 input =
语句替换为:
input = input
// only get the entries which don't have isLate=N:
.filter( function (o) {
return o.isLate !== 'N';
})
// add a property "mm":
.map( function (o) {
o.mm = monthNames[+o.month.substr(0,2)-1];
return o;
});