我一直在使用underscore.js'地图功能,对我来说很棒。我正在寻找一种使用纯JavaScript来复制它的方法。
var fields = _.map(data.filters, function(values, key) {
var name = key.replace(/(_Range|_Options)$/, "");
var data = values[0];
var min = data.min;
});
基本上,这需要一个对象并对每个元素执行一些操作并返回一个对象数组。 有Array.map()。我正在寻找的是一种允许我传递对象的解决方案。
答案 0 :(得分:1)
使用Object.keys()
获取一系列密钥,然后您可以使用Array.map()
。
注意:不要忘记从地图返回,否则结果将是undefined
的数组。
var fields = Object.keys(data.filters).map(function(key) {
var name = key.replace(/(_Range|_Options)$/, "");
var data = data.filters[key][0];
var min = data.min;
return {
name,
data
};
});
答案 1 :(得分:0)
类似的东西:
function forEach(object, fn) {
Object.getOwnPropertyNames(object).map(key => fn(key, object[key]));
}
用法:
forEach({"a":1,"b":2}, (k, v) => console.log(k, v));