javascript-下划线基于对象键创建数组
作者:互联网
假设我有一个这样的js对象
{
a: 5,
b: 1,
c: 3
}
我想使用Underscore做的是生成一个类似于以下内容的数组;
["a","a","a","a","a","b","c","c","c"]
我可以用以下代码实现我想要的
var i = {
a: 5,
b: 1,
c: 3
};
unpack = function (i, item) {
var items = [];
_.range(0, i).forEach(function (i) {
items.push(item)
})
return items;
}
console.log(_.flatten(_.map(i, unpack)));
http://jsfiddle.net/VCFZx/,但这似乎不是最简洁的方法吗?
解决方法:
这个怎么样:
var obj =
{
a :5,
b : 1,
c : 3
};
console.log(
_.flatten(_.map(_.keys(obj), function (key) {
return _.times(obj[key], function() { return key; });
}))
);
请注意,此解决方案仅是功能性的.
这是一个链接良好的版本:
_.chain(_.keys(obj))
.map(function (key) {
return _.times(obj[key], function() { return key; }); })
.flatten()
.value()
标签:underscore-js,javascript 来源: https://codeday.me/bug/20191029/1962755.html