붉은것은3배다
266
2016-08-11 11:07:01
5
5511

javascript 배열을 매개변수로 받아 속성 출력하는 함수...



Array.prototype.test= function(){
	for(var i=0; i < this.length; i++){
		console.log(this[i]['name']);
	}
};



var people = [{name : "test"},{name : "test2"}];
           
people.test;

현재 일단 최종적으로 제가 하고싶은것입니다. 리터럴 형태의 이름들을 출력하고싶습니다.

근데 현재 이코드는 오류도 안나오고.. 실행도 안되고 그렇네요..


그래서 일단 첫단계..


var test = function(){
	for(var i=0; i < arguments.length; i++){
		console.log(arguments[i]);
	}
}

test("재석","준하",'명수','하하');

잘 나옵니다.. 


근데 배열을 보통 저런식으로 배열을 쓰지 않으니 변수에 배열을 담아서 하는데..

var test = function(){
	for(var i=0; i < arguments.length; i++){
		console.log(arguments[i]);
	}
}

var temp = ["재석","준하",'명수','하하'];
test(temp);

근데 이렇게 해버리면 argument가 temp 배열 자체를 하나로 인식해서..

arguments.length가 1이 되버리니 재석만 출력하고 멈춰버립니다..

무슨..메서드를 써야할까요. slice쓰려해도 안되고..


최종적으로는 javascript의 array인 기본 내장함수에다가 프로토타입을 만들어서

배열이 만드러졌을때 자동으로 인덱스당 이름을 출력해주는 메서드를 만드록싶습니다.

0
  • 답변 5

  • star16m
    721
    2016-08-11 11:09:26

    people.test();

    하면 되지 않을까요

  • 겨울의속삭임
    1k
    2016-08-11 11:10:36


    var test = function(temp){
    	for(var i=0; i < temp.length; i++){
    		console.log(temp[i]);
    	}
    }
    
    var temp = ["재석","준하",'명수','하하'];
    test(temp);


  • 붉은것은3배다
    266
    2016-08-11 11:17:11

    그냥 function 선언 하면 잘되는데...

    Array.prototype.test = function(temp){
    	for(var i=0; i < temp.length; i++){
    		console.log(temp[i]);
    	}
    }
    
    var temp = ["재석","준하",'명수','하하'];
    temp.test;

    근데 이렇게 하면..

    function.jsp:50 Uncaught TypeError: Cannot read property 'length' of undefined

    length를..인식을 못합니다. ㅜㅜ

  • star16m
    721
    2016-08-11 11:22:54

    맨 처음에 잘 만드셔놓구 왜 그러세요 ㅎㅎㅎ

    맨 처음 코드에다가 people.test() 만 해보세요ㅎㅎ


  • 붉은것은3배다
    266
    2016-08-11 11:29:58

    ...........................나는..멍청이군요..내 2시간..

  • 로그인을 하시면 답변 을 등록할 수 있습니다.