2014-11-11 6 views
3

배열의 모든 인덱스가 문자열인지 확인하는 좋은 방법이 있습니까?배열의 모든 요소가 문자열인지 확인하십시오.

check(["asd", 123]); // false 
check(["asd", "dsa", "qwe"]); // true 
+0

@Compass 모든 문자열. – super

+1

http://stackoverflow.com/questions/4059147/check-if-a-variable-is-a-string Tada – Compass

+0

@Compass 그게 질문이 아니라는 것이 무엇을 의미합니까? – super

답변

9

Array.every을 사용하여 모든 요소가 문자열인지 확인할 수 있습니다.

function check(x) { 
    return x.every(function(i){ return typeof i === "string" }); 
} 
+0

짧고 달콤합니다. +1 – Latheesan

+0

당신이 이깁니다. , 멋진. +2 – CambridgeMike

+0

경우에 따라 IE> 8 :) – NicoSantangelo

2

다음과 같이 할 수 있습니다. 배열을 반복하고 모든 것이 문자열인지 테스트합니다.

function check(arr) { 
for(var i=0; i<arr.length; i++){ 
    if(typeof arr[i] != "string") { 
     return false; 
    } 
} 

return true; 
} 
0

이와 비슷한?

var data = ["asd", 123]; 

function isAllString(data) { 
    var stringCount; 
    for (var i = 0; i <= data.length; i++) { 
     if (typeof data[i] === 'string') 
      stringCount++; 
    } 
    return (stringCount == data.length); 
} 

if (isAllString(data)) { 
    alert('all string'); 
} else { 
    alert('check failed'); 
} 
+0

@CambridgeMike 버전이 훨씬 더 효율적입니다. (: – NicoSantangelo

0

내 방식 : 심지어 숫자

check=function(a){ 
    for (var i=0; i< a.length; i++) { 
     if (typeof a[i] != "string") 
      return false; 
    }; 
    return true; 
} 
console.log(check(["asd","123"])); // returns true 
console.log(check(["asd",123])); // returns false 
관련 문제