当前位置: 首页 > 知识库问答 >
问题:

替换Angular的forEach()中的对象[重复]

孟鹏海
2023-03-14
$scope.things = [
    {x: 2},
    {x: 4},
    {x: 5}
];

angular.forEach($scope.things, function(thing) {

    //Pick one of the lines at a time

    //thing.x += 10;         // <--- works
    //thing.k = thing.x + 1; // <--- works
    //thing = {k: thing.x + 10, o: thing.x - 1};  // <--- doesn't work

    //
});

console.log($scope.things);
    null

我的问题是:

  • 为什么会发生这种情况?
  • 这是预期的行为吗?
  • 如何完全替换每个东西

共有1个答案

暴绪
2023-03-14

为什么会这样?

因为thing只是一个变量。您可以将变量(甚至是参数变量)的值重新分配到您想要的任何值,而不会影响对象的值。

那是预期的行为吗?

angular.forEach($scope.things, function(thing, key, things) {

    //Pick one of the lines at a time

    //thing.x += 10;         // <--- works
    //thing.k = thing.x + 1; // <--- works
    //thing = {k: thing.x + 10, o: thing.x - 1};  // <--- doesn't work

    //things[key] = {k: thing.x + 10, o: thing.x - 1}; // <--- works!
});
 类似资料:
  • 问题内容: 我的apicontroller返回了以下JSON对象: 我要替换为 我已经尝试了下面的代码,但它仅代替的第一次出现。如何替换所有条目? 谢谢, 问题答案: 您需要使替换全局: 这样,它将继续替换null直到到达结尾 正则表达式文档: https://developer.mozilla.org/zh- CN/docs/Web/JavaScript/Reference/Global_Obj

  • 我正在寻找一种用函数式编程方法替换嵌套foreach循环的方法。情况是这样的: 目前我的代码是这样的: 这将生成如下所示的输出: 有谁知道如何用函数式编程替代方案替换foreach代码块?

  • 问题内容: 可以对Angular中的两个对象进行“深度”比较吗?我想做的是比较每个键/值对。例如: 对象1 对象2 我需要的是比较失败,因为只有一对键/值对是不同的。换句话说,所有键/值对必须完全匹配,否则将失败。这是Angular中已经内置的东西吗?我确信如果确实需要,我可以编写自己的服务,但我希望它已经内置。类似于angular.equals。 问题答案: 要比较两个对象,可以使用: 它进行了

  • 问题内容: 我使用侦听器作为回调来观察Android的异步操作,但是我认为用RxJava替换此侦听器可能很棒,我是使用此库的新手,但是我真的很喜欢它,并且我始终将其与Android项目一起使用。 这是我的重构代码: 一个简单的回调: 和“观察者”: 谢谢! 问题答案: 例如,您可以使用 Observable.fromCallable 来创建可观察数据。 然后使用您的数据 使用了rxjava 1.x

  • 字符串方法有什么区别? 在下面的示例中,代码给出了< code >相同的输出。在这两种情况下,字符串的< code >所有实例都会被替换。 输出: 这里有一只狗,那里有一只 输出: 这里有一只狗,那里有一只

  • 我尝试用forEach循环遍历一个包含三个变量的数组,并将每个变量的值更改为0-255之间的随机数。 我首先给每个变量一个简单的值: