연관 배열이 있는데 글자 "r"로 끝나는 키가 하나있는 경우 배열에서 검색하고 싶습니다. 정적 문자열에 "in"javascript 키워드를 사용하지만 동적으로 정규 표현식을 사용하면 작동하지 않습니다.Javascript - 정규식을 사용하여 특정 배열 키가 있는지 확인하십시오.
답변
Object.keys(obj)
은 개체의 키를 배열로 가져옵니다. 이 배열이기 때문에 당신은 당신이 관심있는 키를 선택 Array.prototype.filter
를 사용할 수 있습니다
keysEndingWithR =
Object
.keys(obj)
.filter(function (key) {
return /r$/.test(key);
});
으로 반복 개체의 속성을 통해 당신의 표현이 일치하는 경우 각각의 시험. 속성 명을 돌려줍니다.
function getMatchingPropertyName(expression, object)
for (var property in object) {
if (object.hasOwnProperty(property)) {
if (expression.test(property)) {
return property
}
}
}
return null;
}
하거나 일치하는 모든 속성 이름하려는 경우 : 수 또한 zzzzBov 기능 솔루션 외에
/r":/.test(JSON.stringify(obj));
: 더러운 빠른 테스트는 당신이 뭔가를 시도 할 수 충분한 경우
function getMatchingPropertyNames(expression, object)
var result = [];
for (var property in object) {
if (object.hasOwnProperty(property)) {
if (expression.test(property)) {
result.push(property);
}
}
}
return result;
}
을 Array.prototype.some()과 함께 사용하십시오.
Object.keys(obj).some(function (key) {
return /r$/.test(key);
});
나는 단지 입에 약간을 던졌다. regex ... JSON 파싱? 그리고 JSON도 시작하지 않습니다! – Biffen
그는 associative array로 obj = {a : 1, b : 2, r : 3}와 같은 일반적인 객체를 가정했습니다. - 문자열에 obj를 파싱하고 문자 "r"로 끝나는 키가 있는지 확인하고 싶다면 regex 테스트를 사용하는 것이 좋습니다. – John
점 옆에는 비효율적입니다. 그래서'JSON.stringify'가 이름과 콜론 사이에 공백을 넣지 않아도되는지의 여부입니다. 그러나 이것은'obj = {a : {r : 0}}'이라면 거짓 긍정을 줄 것입니다. – Biffen
- 1. 특정 배열 키가 있는지 확인하십시오.
- 2. 배열에 특정 키가 있는지 확인하십시오.
- 3. 정규식을 사용하여 문자열에 숫자가 있는지 확인하십시오.
- 4. NSEntityDescription 키가 있는지 확인하십시오.
- 5. wxpython 키가 눌러져 있는지 확인하십시오.
- 6. 정규식을 사용하여 FileUpload가 비어 있는지 확인하십시오.
- 7. 다른 테이블에 키가 있는지 확인하십시오.
- 8. 경로가없는 HDF5Store에 키가 있는지 확인하십시오.
- 9. 배열 키가 있는지 확인
- 10. Qt로 키가 다운되어 있는지 확인하십시오.
- 11. 문자열에 키가 포함되어 있는지 확인하십시오.
- 12. formdata 객체 키가 있는지 확인하십시오.
- 13. 키가 현재 눌려져 있는지 확인하십시오.
- 14. Cassandra에 행 키가 있는지 확인하십시오.
- 15. 특정 텍스트가 배열 내에 있는지 확인하십시오.
- 16. 배열 요소가 있는지 확인하십시오.
- 17. 배열 색인이 있는지 확인하십시오.
- 18. 배열 위치가 있는지 확인하십시오.
- 19. 배열 요소가 있는지 확인하십시오.
- 20. 정규식을 사용하여 문자를 확인하십시오.
- 21. 자바가 사용하는 객체에 특정 "값"이있는 키가 있는지 확인하십시오.
- 22. ArrayList에 배열 객체가 있는지 확인하십시오.
- 23. D를 사용하여 배열 내부의 요소가 있는지 확인하십시오.
- 24. 문자열에 정규식을 사용하는 URL이 있는지 확인하십시오.
- 25. last.fm에 키가 있는지 확인하십시오. json이 반환되었습니다.
- 26. 보고서 작성기 .rdl 배열 키가 있음을 확인하십시오.
- 27. 해시에 텍스트가 포함 된 키가 있는지 확인하십시오.
- 28. Cocoa/Objective-C - NSDictionary에 키가 있는지 확인하십시오.
- 29. 사전에 키가 있는지 확인하십시오. 그렇지 않다면 추가하십시오.
- 30. 다차원에 두 쌍의 값과 키가 있는지 확인하십시오.
코드를 포함시켜 주시겠습니까? –
개체의 모든 속성을 반복하고 각 개체를 테스트해야합니다. – bhspencer
어쨌든 정규 표현식에서 배열을 검색해야하는 이유는 무엇입니까? 정규식은 그렇게 작동하지 않습니다, 당신은 정규식으로 문자열을 평가해야합니다. Regex는 일반 데이터에서 작동하지 않고 문자열에서만 작동합니다. – somethinghere