如何比较数组的项目

时间:2019-12-19 12:58:12

标签: javascript arrays object if-statement

我正在创建一个从动态创建的输入字段中获取值的数组。

temp[i] = {
            custAccId:$('#accId'+ i).val(), 
            accountNumber: $('#account'+ i).val(),
            ifscCode: $('#ifsc'+ i).val(),          
        }

在这里,我必须检查if $('#account0').val()===$('#account1').val(),依此类推。我怎么做?请注意,我还必须检查IFSC代码值的相同条件。

3 个答案:

答案 0 :(得分:1)

这是进行比较的一种非常简单的方法。

如果要删除重复项,我将使用array.filter方法。

var temp = [];

$('li').each(function(i) {
  temp[i] = {
    custAccId: $('#accId' + i).val(),
    accountNumber: $('#account' + i).val(),
    ifscCode: $('#ifsc' + i).val()
  }

  if ($('#account' + i).val() == $('#account' + (i+1)).val()) {
    console.log('Account '+i+' equal to account '+(i+1));
  }

});

console.log(temp)
input {width: 5em}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul>
  <li>0 
    <input type="text" id="accId0" value="00">
    <input type="text" id="account0" value="AA">
    <input type="text" id="ifsc0" value="X00">
  </li>
  <li>1 
    <input type="text" id="accId1" value="01">
    <input type="text" id="account1" value="AA">
    <input type="text" id="ifsc1" value="X01">
  </li>
  <li>2 
    <input type="text" id="accId2" value="02">
    <input type="text" id="account2" value="BB">
    <input type="text" id="ifsc2" value="X02">
  </li>
</ul>

答案 1 :(得分:0)

如果您只是想验证并在未添加任何内容时抛出错误,那么reduce似乎是最简单的选择。

const a = {a: 1};
const b = {a: 1};
const c = {a: 2};

const data = [a, b];
const faultyData = [a, b, c];

// Throw an exception if something is not the same
function validate(dataToValidate) {
    dataToValidate.reduce((previous, current) => {
       if (previous === null) { return current }; // Initial loop. Nothing to compare
       if (current.a === previous.a) { return current; }
       throw new Error('Some values are different')
    }, null)
}

validate(data);

try {
  validate(faultyData)
} catch (err) {
  console.warn('An error happened while validating')
}

但是,我不知道那张大图,这种验证有点腥...

答案 2 :(得分:0)

我的StackOverflow显示了一个有限的问题,所以这就是为什么我在这里询问。

问题是-我正在使用带有ajax和javascript的crud来添加/编辑/删除用户数据。一切正常。对于所有3个功能,我都使用了引导模态,但在编辑情况下,在编辑模态下,我获得了显示在每个字段上的数据,以便在照片中查看

enter image description here

但是在此编辑模式中,我想在var中接收javascript上的值,以传递summernote丰富的HTML编辑器框,但令我震惊的是,没有在javascript上找到这些值。 我试图通过.val()来获取var,但是没有得到任何theies值。不明白为什么。由于这些值显示在表单上,​​所以为什么不将它们放在另一个javascript变量上。

非常感谢。可能很简单,但实际上我被困在这里,只是不注意。