如何在AngularJS中保存对象的JSON索引位置,而不是对象本身
How to save a JSON index position of object, but not the object itself in AngularJS?
这是我的JSON:
$scope.myjson = [
{id: "1", name: "a"},
{id: "2", name: "b"},
{id: "3", name: "c", children: [{id: "4", name: "d"}]}
];
我想在javascript中保存对象X的位置,例如第一个对象的位置是$scope.myjson[0]
,但我不想保存对象本身,我只想要这个位置。同样,我想保存$scope.myjson[2].children[0]
。
我必须保存一个字符串?我怎么能用它来得到O(1)中的那个对象呢?
为什么要保存对象的位置,而不仅仅是对象本身?
如果你想基于id查找来缓存对象,这样的东西会起作用(完全未经测试):
var find = (function() {
var cache = {}, fn;
return fn = function(/*array*/ arr, id) {
if(cache[id]) return cache[id];
for(var i=0; i < arr.length; i++) {
if(arr[i].id === id)
return (cache[id] = arr[i]);
if(arr[i].children && val = fn(arr[i].children, id))
return (cache[id] = val);
}
return null;
}
})();
这样,对find的后续调用将返回缓存的对象。根据数组的大小和查找频率,您也可以对其进行一次迭代,然后创建一个id=>对象的散列。
相关文章:
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- 如何在鼠标悬停时将对象从起始位置移动到结束位置,然后在鼠标悬停后再次移动
- 使用地理坐标,对更靠近用户的对象进行排序'的位置
- 块相对于父对象的位置
- 使用AngularJS修改对象位置只需一次
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- 为什么 javascript 返回对象位置 true 或 false
- 在MongoDB中排序后获取对象的位置
- 是否可以模拟 qUnit 测试的窗口位置对象
- 三.js使用矩阵旋转时对象位置问题
- 放大织物js,对象位置
- 获取 CSS 中指定的对象位置,以便在 jQuery 中修改
- 在HTML5/JS中获取画布对象位置并移动到画布触摸位置
- pixi.js枢轴影响对象位置
- 不能访问正确的对象位置
- 三.js:无法补间对象位置 var(获得 null 错误),但对象本身实际上是可用的
- 无法更改对象位置
- 更改对象位置的分辨率
- 获取对象位置内的对象
- 在固定的地图大小和动态对象位置上计算比例因子