배열의 모든 수준에서 각 값에 함수를 적용하고 싶습니다.
arr = [[1,2,3],[1,2,3],[[1,2],[1,2]],1,2,3]
예를 들어, 모든 값에 3을 곱하고 이전과 동일한 형식으로 매핑하면 다음과 같은 결과를 얻을 수 있습니다.
arr = [[3,6,9],[3,6,9],[[3,6],[3,6]],3,6,9]
이것에 대해 가장 좋은 방법은 무엇입니까?
재귀 함수를 사용하려고했습니다.
function mapall(array){
array.map(function(obj){
if (Array.isArray(obj)===true) { return mapall(obj) }
else{ return obj*3 }
})
};
하지만 내가 그것을 실행할 때 나는 정의되지 않아서 옳지 않은 일을하고 있어야합니다.?
어떤 아이디어 ??
감사
모든 것이 작동했지만에서 돌아 오는 것을 잊었습니다 array.map
. 다음은 더 깨끗한 버전의 코드입니다.
var arr = [[1,2,3],[1,2,3],[[1,2],[1,2]],1,2,3];
function mapAll(array){
return array.map(function(item){
return Array.isArray(item) ? mapAll(item) : item * 3;
});
}
alert(JSON.stringify(mapAll(arr)));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다