我需要检查数据的类型是否为acc-item
,如果是,则需要为变量true
分配值false
或hasAccordionLayout
。
data = [
{
type:"text",
text:"This is just text"
},
{
type:"acc-item",
text:"This is acc-item"
},
{
type:"acc-item",
text:"This is acc-item 2"
},
{
type:"text",
text:"This is just text"
}
];
这是我尝试过的方法,但是想以更好的方式做到
this.hasAccordionLayout = (this.data.filter( function(content) {
if(data.type === 'acc-item') {
return data;
}
})).length > 0? true: false;
答案 0 :(得分:3)
/* Paypal button code */
// Execute the payment
onAuthorize: function(data, actions) {$(this).attr('action')
return actions.payment.execute().then(function(data) {
// Show a confirmation message to the buyer
window.user_membership_activation(data);
});
}
/* Elsewhere in your page or included script */
window.user_membership_activation = function(data) {
// do something here
}
方法测试数组中的至少一个元素是否通过了由提供的函数实现的测试。它返回一个布尔值。
some()
有关实时演示,请参见this。
答案 1 :(得分:0)
已更新,您可以使用some()
函数:
data.some(item => item.type === 'acc-item');
答案 2 :(得分:0)
您可以使用Array.prototype.find():
this.hasAccordionLayout = this.data.find( d => d.type === 'acc-item') != undefined
答案 3 :(得分:0)
尝试使用some这样的功能:
data = [ { type:"text", text:"This is just text" }, { type:"acc-item", text:"This is acc-item" }, { type:"acc-item", text:"This is acc-item 2" }, { type:"text", text:"This is just text" } ];
const exist = key => data.some(ele=>ele.type === key);
console.log(exist('acc-item'));