在筛选器上获取所需的堆栈对象
Get the required stack object on filter
假设我的堆栈有这样的对象。。[obj1 ,obj2 , obj3 , obj1]
我有两个类似的obj1
。
现在打开obj1
的筛选器。。。。我希望最右边的obj1先被选中。。。但它总是最左边的obj1
可能是因为它是第一个添加的。。。FIFO
请告诉我如何过滤后进先出
这是我的代码
var obj = stack.filter(function ( obj ) {
return obj.id === 'somevalue';
})[0];
以上代码返回obj1
(最左边)
它总是根据FIFO过滤并给出对象。。。。我想要后进先出法。。意味着最右边的CCD_ 6首先返回。
您可以创建列表的副本,并在筛选之前使用.reverse()
首先反转列表。
var obj = [].slice.call(stack).reverse().filter(function ( obj ) {
return obj.id === 'somevalue';
})[0];
如果您有一个大列表,我会使用从数组末尾开始的for
循环,并在找到匹配项时返回。这将避免贯穿整个列表。
var obj = (function() {
for(var i = stack.length - 1; i >= 0; i--) {
if(stack[i].id === 'somevalue') {
return stack[i];
}
}
})();
获取堆栈中的最后一项,
var obj = stack.filter(function ( obj ) {
return obj.id === 'somevalue';
})[stack.length -1];
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- foreach对象循环添加到堆栈顶部
- 使用MeteorJS堆栈,如何使用对象的id返回该对象的属性
- 日志记录功能/对象名称's在函数堆栈内的javascript中
- 滚动浏览 DOM 对象的“堆栈”
- 将两个对象彼此更新为子对象-超过了最大调用堆栈大小
- 有没有一种方法可以从Internet Explorer中的Error对象中获取行号或堆栈跟踪
- 在筛选器上获取所需的堆栈对象
- 重写对象'的克隆属性超出了最大调用堆栈大小
- 添加“toJSON"JavaScript对象实例的方法导致最大调用堆栈错误
- 在递归循环中迭代和处理JSON对象会导致堆栈超出错误