我尝试检查具有多个键和值的数组是否包含重复项,如果是这样的话,我不希望将重复项推送到数组中。
下面是我目前所做的(在项目的循环中运行):
let positionArray = [], positionId="X", projectTitle="Title", xPosition=5, yPosition=10;
positionArray.push({
"Id": positionId,
"projectName": projectTitle,
"xPosition": xPosition,
"yPosition": yPosition
});
console.log($.inArray(positionId, positionArray));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
现在所有的逻辑都告诉我,当我运行循环时,我应该在控制台中看到"-1“以外的东西,但它每次都会返回"-1”。我试图弄清楚这是否仅仅是因为.inArray()
只适用于没有键的数组,而不是幸运的。
我在这里做错了什么?
发布于 2018-11-22 09:23:11
不管您对inArray()
的看法如何,我总是建议您使用Array
的原型函数来查找索引,即:findIndex()
let positionArray = [], positionId="X", projectTitle="Title", xPosition=5, yPosition=10;
positionArray.push({
"Id": positionId,
"projectName": projectTitle,
"xPosition": xPosition,
"yPosition": yPosition
});
var index = positionArray.findIndex(item => item.Id === positionId);
console.log(index);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
https://stackoverflow.com/questions/53427459
复制相似问题