我是JavaScript的新手。在这里,我有一个像这样的数组:-
var selected_Text_Include_Array = [{ annotation_Type:'tota',value:'abc', }]
它有多个这样的对象。现在,我要获取的是该特定元素的ID。
for (var j = 0; j <= selected_Text_Include_Array.length - 1; j++) {
if (selected_Text_Include_Array[j].annotation_Type !== "undr") {
var index = getIndex(selected_Text_Include_Array, annotationName);
console.log("index is ==>", index);
if (index !== undefined) {
selected_Text_Include_Array.splice(index, 1);
}
}
}
现在,这里是getIndex方法,
var getIndex = function (array, annotationName) {
if (annotationName === "Address") {
var index = array.findIndex(function (x) {
return x.annotation_Type === "foot";
})
}
else if (annotationName === "FootNote") {
var index = array.findIndex(function (x) {
return x.annotation_Type === "addr";
})
}
else if (annotationName === "Overview") {
var index = array.findIndex(function (x) {
return x.annotation_Type === "tota";
})
}
else if (annotationName === "TotalExperience") {
var index = array.findIndex(function (x) {
return x.annotation_Type === "over";
})
};
}
因此,条件得到了匹配,但仍然返回了undefined元素的id,我不知道为什么会这样。
有人可以帮我吗?
答案 0 :(得分:0)
我不太了解您要完成的工作,但是您没有从方法中返回索引值。
var getIndex = function (array, annotationName) {
var index;
//conditions here and set your index
return index;
}
答案 1 :(得分:0)
我不完全了解您的代码。 从您的代码中,我了解的是“ for循环”中未定义“ annotationName”,并且您还必须在getIndex函数中将索引初始化为“ -1”,然后在每个if条件中更新索引,然后必须返回索引,那么只有您才能获得价值。 示例代码:
var getIndex = function (array, annotationName) {
var index =-1;
if (annotationName === "Address") {
var index = array.findIndex(function (x) {
return x.annotation_Type === "foot";
})
}
return index;
}
答案 2 :(得分:0)
在getIndex函数中更改几件事,它将正常工作,您的代码几乎正确,只是缺少return语句
您正在将数组索引值返回到“索引变量”
,而“ function getIndex”不返回任何值
//add the following statement to at the end of getIndex function before closing "}"
return index;
所以您的getIndex函数变成这样
var getIndex = function (array, annotationName) {
var index;
if (annotationName === "Address") {
index = array.findIndex(function (x) {
return x.annotation_Type === "foot";
})
}
else if (annotationName === "FootNote") {
index = array.findIndex(function (x) {
return x.annotation_Type === "addr";
})
}
else if (annotationName === "Overview") {
index = array.findIndex(function (x) {
return x.annotation_Type === "tota";
})
}
else if (annotationName === "TotalExperience") {
index = array.findIndex(function (x) {
return x.annotation_Type === "over";
})
};
return index;
}
注意:我猜你有这样的数组
var selected_Text_Include_Array = [{annotation_Type:"over"}, {annotation_Type:'foot'}];
JSBIN示例:https://jsbin.com/qifiday/edit?html,js,console,output