.inArray()用于带有键的数组?

时间:2018-11-22 09:17:44

标签: jquery arrays

我正在尝试检查具有多个键和值的数组是否包含重复项,如果是这种情况,我不希望将重复项推入数组。

这是我到目前为止(在一个项目循环中运行):

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()仅适用于没有键但没有运气的数组。

我在这里做什么错了?

1 个答案:

答案 0 :(得分:0)

不管您在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>