나는 왜이 함수가 입력에 상관없이 항상 true를 반환하는지 알아 내려고 악몽을 꾼다. 문제의 문서는 JSON 파일입니다. 나는 아래 대신 코드를 사용하는 경우는 것, 그러나입력에 관계없이 true를 반환하는 함수
var doc = {
"test_type": "test3"
};
var ignore = ['test1', 'test2', 'test3'];
test = (ignore.some(function(v) {
return doc.test_type.toLowerCase().indexOf(v) == -1;
}));
console.log('Test:', test);
:이다 나는 변수 테스트에 넣어 있고, 결과에 관계없이 항상 무엇을 '테스트 유형'의 사실로 나타납니다 'test_type'값이 'ignore'배열에있는 경우에만 true를 반환합니다. 그러면 false가 반환됩니다.
var doc = {
"test_type": "test4"
};
var ignore = ['test1', 'test2', 'test3'];
test = (ignore.some(function(v) {
return doc.test_type.toLowerCase().indexOf(v) >= 0;
}));
console.log('Test:', test);
내가, 테스트 유형 배열에 값을 일치, 또는 좀 더 정확하게 배열에서 문자열이 테스트 유형 배열 내의 부분으로 발견 될 수 있는지 여부를 확인하면된다 싶어 그렇다면 출력에서 문서를 제외하십시오.
당신이 * * 원하는 작업에 대한 긍정적 혼란 스러워요 그 조각 중 어느 것도 그 이유입니다 ... – deceze
아마도 배열 요소를 소문자로 처리해야 할 수도 있습니다.'return doc.test_type.toLowerCase(). indexOf (v.toLowerCase)> = 0' – Mihir
두 번째 함수가 올바르게 작동합니다. 어떤 요소가 조건을 만족하면'some()'는'true'를 반환합니다. 그래서 첫 번째 함수는 항상 'true'를 반환합니다. –