我正在尝试检查具有多个键和值的数组是否包含重复项,如果是这种情况,我不希望将重复项推入数组。
这是我到目前为止(在一个项目循环中运行):
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()
仅适用于没有键但没有运气的数组。
我在这里做什么错了?
答案 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>