javascript – 如何用lodash选择数组的元素?

前端之家收集整理的这篇文章主要介绍了javascript – 如何用lodash选择数组的元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个代码
var answers = _.clone($scope.question.answers)
        var answers = {};
        $scope.question.answers.forEach(function (element,index) {
            answers[index].answerUid = element.answerUid;
            answers[index].response = element.response;
        });

有什么方法可以使用lodash简化这个吗?

解决方法

我不清楚你想要迭代什么,以及你期望在最后得到什么.例如,当前编写问题代码的方式,此行将导致错误
answers[index].answerUid = element.answerUid;

因为它将从answers对象中读取答案[index],获取未定义并尝试访问未定义值的字段answerUid.

无论如何,我可以涵盖重大案件.如果你想要答案是一个数组,那么这样做:

var answers = _.map($scope.question.answers,_.partialRight(_.pick,"answerUid","response"));

无论$scope.question.answers是数组还是Object,这都有效. _.partialRight(_.pick,“answerUid”,“response”))调用相当于:

function (x) {
    return _.pick(x,["answerUid","response"]);
}

_.pick函数从对象中选择两个字段answerUid和response.

如果$scope.question.answers是键/值映射,并且您希望在答案中有相应的映射,那么这样做:

var answers = _.mapValues($scope.question.answers,"response"));

这里的所有解决方案都经过测试,但我在转录中引入了一个错字并非不可能.

原文链接:https://www.f2er.com/js/155701.html

猜你在找的JavaScript相关文章