문자열 또는 숫자 일 수있는 요소가 배열 안에 있는지 여부를 찾고 싶습니다. 배열은 test
이고 요소는 value
입니다.자바 스크립트에서 배열의 각 요소에 대한 toString()
function compare(value, test) {
// We need to stringify all the values to compare them with a string
return test.map(function(value){
return value.toString();
}).indexOf(value) > -1;
}
alert(compare("2", [1, 2, 3]));
alert(compare("2", ["1", "2", "3"]));
It does work : 지금까지 너무 좋아,이 코드가 있습니다. 그러나 내 요구에 맞지 않는 indexOf()
uses strict equality이라는 사실 때문에 악마처럼 보입니다. 또한 작동하는 것이 다음을 수행 할 수 해키 방법 : 테스트 ["a", "b|c", "d"]
을 경우 우리가 a
, b
비교 될 거라고 이후는 간단하지만
return test.join("|").split("|").indexOf(value) > -1;
은, 우리가 문제가, 그것을 볼 수 c
& d
대신 a
, b|c
, d
입니다. 안전 문자을 찾는 것도 옵션이 아니므로이 해결책은 유효하지 않습니다. indexOf()
을 더 쉽게 수행 할 수있는 방법이 있나요? 보통 평등?
편집 : 내 첫 번째 시도는 항등에서 예기치 않게 거짓을 반환하는이를하고 있었는데 나는 그것을 복잡한 방법했던 그 이유는 :
["1", "2", "3"].indexOf(2);
귀하의'compare' 기능이 나에게 잘 보이고, 전혀 복잡, 당신이 그것을 변경해야하는 이유가 표시되지 않습니다 ? – adeneo
'arr.map (String) .indexOf ("3");'원래 (: –