查找集合中是否存在具有值的项
Find if item in collection with value exists
首先,这里是我非常简单的组件:
var RenewedLoanModal = new Vue ({
el: '#myModal',
data:
{
responses: []
}
});
responses
由ajax调用填充,它是一个对象数组。结构如下:
responses: [
{error: 'foo', message: 'foo', id: 'foo', success: true},
{error: 'bar', message: 'bar', id: 'bar', success: false},
...
]
我想知道这些对象中是否有一个有success: false
,但我无论如何都没有找到来检查它
有没有一种方法可以在方法中而不是在视图渲染中迭代responses
集合?或者v-if
测试?
有很多方法可以通过项的属性来检查项是否存在于集合中。
纯Javascript
只使用纯javascript可以做的第一件事是:
var success = false
for (var i = 0; i < responses.lenth; i++) {
if (responses[i].success === true) success = true
}
ECMAScript 6
你可以在ES6中这样做:
var success = responses.reduce((prev, cur) => prev || cur.success, false)
功能性编程
另一种更具声明性的方法是使用Ramda.js库:
// if 'any' of the elements satisfy the predicate
var success = R.any(response => response.success === true)(responses)
// or more briefly
var success = R.any(response => response.success)(responses)
在Vue.js中连接
在创建了一个具有上述返回结果的计算属性之后,如果您想有条件地显示某些内容,可以将其连接到v-if
或v-show
。
如果可能的话,我会使用:
data: {
hadError: false,
responses: []
}
并让addResponse(data,resp)完成以下工作:
if(resp.success === false) data.hadError = true;
data.responses.push(resp);
否则:
for(i=0; i<responses.length; i++) {
if(response[i].success === false)
.....
}
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 包含一个集合的1到3个成员但其中一个成员不能单独存在的正则表达式
- Backbonejs:在视图中渲染的模型,但在集合中不存在
- 查找集合中是否存在具有值的项
- 是否存在非IE等价物“;所有“;元素集合
- MongoDB 的集合构造函数是否仅在集合不存在时才创建集合
- JS/MongoDB:检查对象(集合文档)中是否存在嵌套字段
- Meteor正在检测集合中是否存在字段
- 我的主干集合中的响应/模型之间存在冲突
- 将具有唯一id的对象集合存储为以id作为键的关联数组,而不是作为常规数组,是否存在缺陷?
- 在UnderscoreJS中,是否存在用于匹配任何键值对的集合过滤器?
- 在mongoose中嵌套查询,用于检查另一个集合中的值是否存在
- 如何设置和解析已存在于集合中的主干模型
- 给定一个id列表,查询集合中不存在哪些id的最佳方法是什么?
- 如何在json数据中检查任何列值使用angular js是否存在数组/集合
- 删除字符串集合中存在的定位标记内的空格和换行符
- 主干更新模型(如果集合中已存在)
- 如果存在数组的元素,则从 mongodb 集合中检索项目(meteor js)