gpt4 book ai didi

javascript - 测试数组中的对象的 data-attr 并返回 true/false if 语句 JS

转载 作者:行者123 更新时间:2023-12-01 07:38:10 25 4
gpt4 key购买 nike

我有一个对象数组,我想测试其中一个是否有数据属性,这样我就可以做一个简单的 if 语句,这是我想要做的示例

if (array.hasAttribute("data-attr")) {}

我尝试过 some() 和 every()

if (array.some(this.hasAttribute("data-attr"))) {}

但我无法找出正确的语法,请帮忙

最佳答案

array.some(this.hasAttribute("data-attr"))

几乎是正确的。 Array#some需要a predicate ,所以你需要这样做

array.some(function(el) { 
return el.hasAttribute("data-attr");
})

或者使用箭头函数更短:

array.some(el => el.hasAttribute("data-attr"))

Array#every工作方式相同并采用谓词,因此您可以以相同的方式调用它:

array.every(function(el) { 
return el.hasAttribute("data-attr");
})
//or
array.every(el => el.hasAttribute("data-attr"))

如果您想使用其中之一,您可以提取谓词并重新使用它:

var hasDataAttribute = el => el.hasAttribute("data-attr")

array.some(hasDataAttribute)
array.every(hasDataAttribute)

如果你有 jQuery 对象,则必须使用 some tricks因为 jQuery 没有为存在属性返回 truefalse 的方法。您可以使用 obj.attr('some-attribute') !== undefined 轻松模拟它 - 如果 some-attribute 这将返回 true存在,如果不存在,则为 false

var hasDataAttribute = jQueryEl => jQueryEl.attr('data-attr') !== undefined

对于 data-* 属性,您还可以使用 jQuery.data()这是(在本例中)简写 element.attr('data-something')element.data('something') 相同:

var hasDataAttribute = jQueryEl => jQueryEl.data('attr') !== undefined

关于javascript - 测试数组中的对象的 data-attr 并返回 true/false if 语句 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59631213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com