내가 가지고 있다고 말해
imageList = [100,200,300,400,500];
어느 것이 나에게
[0]100 [1]200
기타
JavaScript에서 값으로 색인을 반환하는 방법이 있습니까?
즉 , 200 의 인덱스를 원하면 1 이 반환 됩니다.
내가 가지고 있다고 말해
imageList = [100,200,300,400,500];
어느 것이 나에게
[0]100 [1]200
기타
JavaScript에서 값으로 색인을 반환하는 방법이 있습니까?
즉 , 200 의 인덱스를 원하면 1 이 반환 됩니다.
답변:
당신은 사용할 수 있습니다 indexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
배열에서 값을 찾을 수 없으면 -1을 얻습니다.
들어는 배열 객체 를 사용 map
하여 indexOf
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.map(function (img) { return img.value; }).indexOf(200);
console.log(index);
최신 브라우저에서는 다음을 사용할 수 있습니다 findIndex
.
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
그 ES6의 일부를 지원하는 크롬, FF, 사파리 및 Edge
jQuery의 함수 jQuery.inArray 사용
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
다음은 자바 스크립트의 복잡한 배열에서 값 인덱스를 찾는 다른 방법입니다. 누군가를 도와주세요. 다음과 같이 JavaScript 배열이 있다고 가정 해 봅시다.
var studentsArray =
[
{
"rollnumber": 1,
"name": "dj",
"subject": "physics"
},
{
"rollnumber": 2,
"name": "tanmay",
"subject": "biology"
},
{
"rollnumber": 3,
"name": "amit",
"subject": "chemistry"
},
];
이제 배열에서 특정 객체를 선택해야하는 경우 이름이 Tanmay 인 학생의 색인을 찾으려고 가정합니다.
우리는 배열을 반복하고 주어진 키에서 값을 비교함으로써 그렇게 할 수 있습니다.
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
이 함수를 사용하여 아래와 같이 특정 요소의 색인을 찾을 수 있습니다.
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Array.indexOf
일부 Internet Explorer 버전에서는 작동하지 않습니다. 다른 방법이 있지만 여러 가지 방법이 있습니다 ...이 질문 / 답변 참조 : 배열에 JavaScript의 객체가 포함되어 있는지 어떻게 확인합니까?
ES6
기능 을 사용할 수 있습니다 Array.prototype.findIndex
.
이
findIndex()
메소드는 제공된 테스트 기능 을 만족 하는 배열에서 첫 번째 요소 의 색인을 리턴합니다 . 그렇지 않으면 -1이 반환됩니다.
var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));
// expected output: 1
객체 속성별로 색인을 찾습니다.
객체 속성별로 색인을 찾으려면
yourArray.findIndex(obj => obj['propertyName'] === yourValue)
예를 들어 다음과 같은 배열이 있습니다.
let someArray = [
{ property: 'OutDate' },
{ property: 'BeginDate'},
{ property: 'CarNumber' },
{ property: 'FirstName'}
];
그런 다음 필요한 속성의 인덱스를 찾는 코드는 다음과 같습니다.
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
여기에 내 취향이 있습니다. 대부분의 사람들 솔루션은 항목이 있는지 확인하지 않고 존재하지 않으면 임의의 값을 제거하는 것처럼 보입니다.
먼저 요소가 index인지 찾아서 존재하는지 확인하십시오 . 존재하는 경우 접속 방법을 사용하여 색인으로 제거하십시오.
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}
참조 배열 :
var array = [
{ ID: '100', },
{ ID: '200', },
{ ID: '300', },
{ ID: '400', },
{ ID: '500', }
];
사용 filter
하여 indexOf
:
var in_array = array.filter(function(item) {
return item.ID == '200' // look for the item where ID is equal to value
});
var index = array.indexOf(in_array[0]);
다음을 사용하여 배열의 각 항목을 반복합니다 indexOf
.
for (var i = 0; i < array.length; i++) {
var item= array[i];
if (item.ID == '200') {
var index = array.indexOf(item);
}
}
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
참고 : Includes 함수는 배열의 간단한 인스턴스 메소드이며 항목이 배열에 있는지 쉽게 찾을 수 있도록 도와줍니다 (indexOf와 달리 NaN 포함).