我有以下代码:
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
if (exists(member_data_list, "franz")) {
//HERE I NEED TO GET THE INDEX OF MEMBER_DATA_LIST[?]
//EXAMPLE: if (exists(member_data_list, "franz")) => RESULT => 2 (MEMBER_DATA_LIST[2])
console.log("NAME IS IN ARRAY AT INDEX " + "?");
}
function exists(arr, search) {
return arr.some(row => row.includes(search));
}
如何获取此数组中名称的索引?
答案 0 :(得分:1)
一种解决方案是通过.find()
获取元素,然后使用.indexOf()
。例如:
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
if (exists(member_data_list, "franz")) {
var found = member_data_list.find(row => row[0] === "franz")
var index = member_data_list.indexOf(found)
// if the element is exists then index's value will be greater than -1
if (index > -1) {
console.log("NAME IS IN ARRAY AT INDEX " + index)
}
}
function exists(arr, search) {
return arr.some(row => row.includes(search));
}
答案 1 :(得分:0)
您可以创建另一个函数来获取循环数组并使用include的索引:
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
if (exists(member_data_list, "franz")) {
var index = findIndex(member_data_list, 'franz');
console.log("NAME IS IN ARRAY AT INDEX " + index);
}
function exists(arr, search) {
return arr.some(row => row.includes(search));
}
function findIndex(array, value) {
for (var i = 0; i < array.length; i += 1) {
if (array[i].includes(value)) {
return i;
}
}
return -1;
}
答案 2 :(得分:0)
您可以迭代数组并返回嵌套数组的索引。为了查找该名称在任何子数组中是否可用,请使用includes
或indexOf
。还要假设该数组包含两个具有某些内容的子数组,那么将返回更高的索引
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
function exists(arr, name) {
let ind;
arr.forEach((item, index) => {
if (item.includes(name.toLowerCase())) {
ind = index
}
})
return ind;
}
let isExist = exists(member_data_list, "franz")
if (isExist) {
console.log("NAME IS IN ARRAY AT INDEX " + isExist);
}
答案 3 :(得分:0)
您还可以使用Array.prototype.findIndex()(不适用于Internet Explorer)
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
if (exists(member_data_list, "franz")) {
var index = findIndex(member_data_list, 'franz');
console.log("NAME IS IN ARRAY AT INDEX " + index);
}
function exists(arr, search) {
return arr.some(row => row.includes(search));
}
function findIndex(arr, search) {
return arr.findIndex(row => row.includes(search));
}
答案 4 :(得分:0)
单行:
var i = member_data_list.findIndex(item => item[0] ==="franz");
在线运行此
var member_data_list = [
["adrian", "test", Number(9)],
["supler", "test", Number(2.3)],
["franz", "test", Number(2.5)],
["drucker", "test", Number(9.6)],
];
console.log(member_data_list.findIndex(item => item[0] ==="franz"));