gpt4 book ai didi

javascript - 如何循环遍历数组并查找与数组中的值匹配的内容

转载 作者:行者123 更新时间:2023-11-28 04:26:04 30 4
gpt4 key购买 nike

我有 2 组数组,它​​们的值由 data-attribute(data-product-name) 获取,1 是可用项目的整个列表,另一个 1 是选定的项目,用于选定它们附属于一个国家的项目。

    <!-- the item list -->
<div class="whole_list">
<ul>
<li data-product-name="a">item A<button>ATTACH</button></li>
<li data-product-name="b">item B<button>ATTACH</button></li>
<li data-product-name="c">item C<button>ATTACH</button></li>
<li data-product-name="d">item D<button>ATTACH</button></li>
<li data-product-name="e">item E<button>ATTACH</button></li>
</ul>
</div>

<!-- selected item block -->
<div class="selected_item_container">
<ul class="selected_items">
<li data-product-name="a">item A</li>
<li data-product-name="b">item B</li>
<li data-product-name="e">item E</li>
</ul>
<button class="edit_country">EDIT</button>
</div>


$('.edit_country').on('click', function () {
// to grab text/string from .whole_list data-product-name
var productName = []; // product name
$('.whole_list li').each(function (index) {
productName .push($(this).data('product-name'));
});

// to grab text/string from .selected_item_container data-product-name
var selProductName = []; // selected product name
$('.selected_item_container').find('[data-product-name]').each(function () {
selProductName .push($(this).data('product-name'));
});

// if the string/text matches, change the button text
$('.whole_list li').each(function (index) {
if ($(this).data('product-name') === arrProductName[index]) {
$(this).find('button').text('DETACH');
} else {
$(this).find('button').text('ATTACH');
}
});
});

理想情况下,当用户单击 edit_country 按钮时,.whole_list 已将这些选定项目按钮更改为 DETACH 文本。我尝试过,但问题是,它只改变了项目A和项目B按钮,项目E按钮没有改变。

我认为这与索引不匹配有关。不太清楚,请指教,谢谢。

Demo site

最佳答案

使用.indexOf查找数组中是否存在某个值。
像这样:

arrProductName.indexOf( $(this).data('product-name') ) != -1

因为,使用 $(this).data('product-name') === arrProductName[index]...
如果你的数组是这样的:

var arrProductName = ["a","c","d"];

a 将在索引 0 处找到,
b 将找不到,
c不能在索引 2 处找到...它是 d
d不能在索引 3 处找到...它是未定义
e 将找不到。

参见 CodePen .

关于javascript - 如何循环遍历数组并查找与数组中的值匹配的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048381/

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