Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Underline.js筛选器操作以动态创建对象列表_Javascript_Angularjs_Underscore.js - Fatal编程技术网

Javascript Underline.js筛选器操作以动态创建对象列表

Javascript Underline.js筛选器操作以动态创建对象列表,javascript,angularjs,underscore.js,Javascript,Angularjs,Underscore.js,我已经完成了以下工作,以循环遍历AngularJS中的两个对象列表,并有条件地创建一个新的对象列表 $scope.loading = true; $scope.toUpdate = []; for (var i = 0; i < changedItems.length; i++) { for (var j = 0; j < $scope.originalItems.length; j++) { if (changedItems[i].AttributeName == $s

我已经完成了以下工作,以循环遍历AngularJS中的两个对象列表,并有条件地创建一个新的对象列表

$scope.loading = true;
$scope.toUpdate = [];
for (var i = 0; i < changedItems.length; i++) {
  for (var j = 0; j < $scope.originalItems.length; j++) {
    if (changedItems[i].AttributeName == $scope.originalItems[j].AttributeName 
        && changedItems[i].Value != $scope.originalItems[j].Value) {
          $scope.toUpdate.push(changedItems[i]);
    }
  }
}
$scope.loading=true;
$scope.toUpdate=[];
对于(变量i=0;i
当值被用户更改时,我正在创建一个对象列表(
$scope.originalItems
具有原始值)

我将其发送给MVC控制器以更新更改

我这样做是因为我不需要更新那些未更改的值

这种方法正在进行多次迭代

要求:

我确信这可以通过subline.js以一种直接的方式完成,但我无法做到


需要将此逻辑转换为下划线的帮助。

您的代码可以转换为下划线,如下所示:

_.each(item,function(i){
    _.each($scope.previous,function(p) {
         if (i.AttributeName == p.AttributeName && i.Value != p.Value) 
          $scope.toUpdate.push(i);
    });
});
但我认为您希望避免重复项目,那么您可以尝试以下方法:

$scope.toUpdate = _.filter(item,function(i) {
    return _.any($scope.previous,function(p){
        return i.AttributeName == p.AttributeName && i.Value != p.Value;
    });
});

更新


查看以下文档:

这里没有下划线攻击,我不是专家,但您应该查看“lo dash”。它的灵感来源于下划线,但应该更高效,并具有更多功能。如图所示:。我只是在这里评论一下,这样你就可以检查一下你的项目是否很新,你仍然可以很容易地替换它。你的解决方案可行,但我可以知道你的解决方案的工作方式吗?检查Lodash的文档(绝对同意Tsasken,它比下划线改进得多),顺便问一下:你能重新表述一下你关于“解决方案如何工作”的问题吗