我有一个对象,并希望使用下划线(地图/每个任何东西)获得前n个项目
以下是代码:
var input = {
a:1,
b:2,
c:3,
d:4
}
_.map(input, function (value, key, index) {
if(index < 2) {
console.log(key + ' == ' + value)
}
});
输出应该像[{a:1},{b:2} ...]
答案 0 :(得分:1)
Pure ES6解决方案,没有Underscore / Lodash:
const cutObject = (obj, max) => Object.keys(obj)
.filter((key, index) => index < max)
.map(key => ({[key]: obj[key]}));
console.log(cutObject({a:1, b:2, c:3, d:4, e:5}, 3)); // [{a:1}, {b:2}, {c:3}]
但你也应该知道Object.keys
并不能保证特定的顺序。它按照将属性原始插入该对象的顺序返回对象的键数组。最后一个可能取决于JavaScript引擎的实现,因此如果订单非常重要,它会优先使用数组。
答案 1 :(得分:1)