相关疑难解决方法(0)

如何正确克隆JavaScript对象?

我有一个对象,x.我想把它复制为对象y,这样改变y就不要修改了x.我意识到复制从内置JavaScript对象派生的对象将导致额外的,不需要的属性.这不是问题,因为我正在复制我自己的一个文字构造的对象.

如何正确克隆JavaScript对象?

javascript clone javascript-objects

2922
推荐指数
42
解决办法
176万
查看次数

如何在 AngularJS 中将 JSON 对象推送到数组

我需要将一个 JSON 对象推送到 AngularJS,并且需要先检查其中一个对象的值是否存在。我需要覆盖数据。

$scope.setData = function(survey, choice) {

  keepAllData.push({
    'surveyId': survey.id,
    'choiceId': choice.id
  });
  console.log(keepAllData);
  toArray(keepAllData);
  alert(JSON.stringify(toArray(keepAllData)));

  $scope.keepAllDatas.push({
    'surveyId': survey.id,
    'choiceId': choice.id
  });
  var items = ($filter('filter')(keepAllDatas, {
    surveyId: survey.id
  }));

}

function toArray(obj) {
  var result = [];
  for (var prop in obj) {
    var value = obj[prop];
    console.log(prop);
    if (typeof value === 'object') {
      result.push(toArray(value));

      console.log(result);
    } else {
      result.push(value);
      console.log(result);
    }
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

如果keepalldata中存在调查id,我需要使用choiceid更改最近的值。可以用 AngularJS 来做吗?

angularjs

5
推荐指数
1
解决办法
1万
查看次数

JavaScript对象文字和数组

我有以下JavaScript代码:

oCoord = {x: null, y: null};
var aStack = [];

oCoord.x = 726;
oCoord.y = 52;
aStack.push(oCoord);

oCoord.x = 76;
oCoord.y = 532;
aStack.push(oCoord);

oCoord.x = 716;
oCoord.y = 529;
aStack.push(oCoord);
Run Code Online (Sandbox Code Playgroud)

现在,这将创建以下结构(三个对象的数组).

Array[Object, Object, Object];
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试访问每个对象的属性时,它们都是相同的.为什么是这样?

alert(aStack[0].x); // Outputs 716
alert(aStack[1].x); // Outputs 716
alert(aStack[2].x); // Outputs 716
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript

2
推荐指数
1
解决办法
3427
查看次数

标签 统计

javascript ×2

angularjs ×1

clone ×1

javascript-objects ×1