对象的Map函数

时间:2018-04-04 17:11:07

标签: javascript

我一直在使用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()。我正在寻找的是一种允许我传递对象的解决方案。

2 个答案:

答案 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));