AngularJS引用数组中的对象

时间:2014-05-10 16:31:17

标签: angularjs object reference

AngularJS如何引用数组中的对象?

我试过这个:

设置:

var testarray = [];
var obj1 = {id:1};
var obj2 = {};
var obj3 = {};

testarray.push(obj1);
testarray.push(obj2);
testarray.push(obj3);

选项1:

var refarr = testarray.filter(function(obj){
                        if(obj.id === 1){
                            return obj;
                        }
                        })[0];
console.log(testarray[0] === refarr); //RETURNS FALSE

选项2

var refarr = testarray[0];
console.log(testarray[0] === refarr); //RETURNS FALSE

选项3:

var refarr = {};
angular.copy(testarray[0], refarr);
console.log(testarray[0] === refarr); //RETURNS FALSE

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你的过滤器函数不正确,它应该是一个谓词函数,即它应该返回一个布尔值:

var refarr = testarray.filter(function(obj){
    return obj.id && obj.id === 1;
})[0];

console.log(testarray[0] === refarr); //YIELDS TRUE


var refarr = testarray[0];
console.log(testarray[0] === refarr); //YIELDS TRUE