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
如何解决这个问题?
答案 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