我想比较两个数组,如果它们相等,则向 html 添加一个新属性。
首先是我的 html
<ul class="checkout__delivery-collect-shoplist" data-bind="foreach: currentOptions ">
<li class="checkout__delivery-collect-shop js-delivery-item active">
<h6><em data-bind="text: label">Name1</em></h6>
</li>
<li class="checkout__delivery-collect-shop js-delivery-item">
<h6><em data-bind="text: label">Name2</em></h6>
</li>
</ul>
首先,我用文本创建新数组
var arr = [];
jQuery('em[data-bind="text: label"]').each(function() {
arr.push(jQuery(this).text().split(';'));
});
另外,我还有另一个带有文本的数组
var Managerss = Manager.GlobalData[2].options
Managerss.filter(x => x.payment_checkmo === '1').map(x => x.label);
它会给
["Name1", "Name2"]
0: "Name1"
1: "Name2"
length: 2
__proto__: Array(0)
所以我首先需要比较这些数组,如果为 true,则创建新属性 data- payment = '0'
到 li.class checkout__delivery-collect-shop js-delivery-item
举例说明我想要什么
<ul class="checkout__delivery-collect-shoplist" data-bind="foreach: currentOptions ">
<li class="checkout__delivery-collect-shop js-delivery-item active" data-payment='0'>
<h6><em data-bind="text: label">Name1</em></h6>
</li>
<li class="checkout__delivery-collect-shop js-delivery-item" data-payment='0'>
<h6><em data-bind="text: label">Name2</em></h6>
</li>
</ul>
最佳答案
这会比较 2 个数组中的每个元素,您可以编辑此代码来执行您想做的任何操作。
function Compare()
{
var a = ['Name 1', 'Name 2', 'Name 3'];
var b = ['Name 1', 'Name 2', 'Name 3'];
// if length is not equal
if(a.length!=b.length)
return "False";
else
{
// comapring each element of array
for(var i=0;i<a.length;i++)
if(a[i]!=b[i])
return "False";
return "True";
}
}
var v = Compare();
document.write(v);
关于javascript - jquery中如何比较两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833237/