js로 배열을 분해한 모든 모드를 가져옵니다
5351 단어 JavaScript
하고 싶은 일
간단하고 알기 쉬운 언어로 설명할 수 없기 때문에 완성된 인상을 그려야 한다!console.log(allSubArray([1,2,3]);
/*
[
[[1], [2], [3]],
[[1, 2], [3]],
[[1], [2, 3]],
[[1, 2, 3]]
]
(順番の入れ替え([[1, 3], [2]]など)は考慮しません)
*/
무엇에 쓰입니까?이렇게 말하지 마십시오.)
생각
컴백해서 쓸 수 있을까요?
const allSubArray(array) => {
// 再帰終了条件
if(array.length === 0) return [[]];
cosnt result = [];
// array = [1,2,3,4]とする
/* 最初は0番目の要素[1]とそれ以外[2,3,4]に分割して考える */
const subArrays = allSubArray([2,3,4]);
// subArrays = [[[2], [3], [4]], [[2,3],[4]], [[2],[3,4]], [[2,3,4]] ] が期待される
// [1]とsbuArraysの各要素をくっつけたものをresultにpush
/* 期待されるresultは
[
[[1], [2], [3], [4]],
[[1], [2,3], [4]],
[[1], [2], [3,4]],
[[1], [2,3,4]]
]
*/
/* 次に、1番目までのの要素[1, 2]とそれ以外[3,4]に分割して考える*/
/* 今感じで行けるか・・・? */
}
해보자.
const allSubArray = (array) => {
// 再帰終了条件
if(array.length === 0) return [[]];
const result = [];
// array = [1,2,3,4]とする
/* 最初は0番目の要素[1]とそれ以外[2,3,4]に分割して考える */
for(let i = 1; i <= array.length; i++) {
const fixedArray = array.slice(0, i); //i=1の時:fixedArray = [1], i=2の時:fixedArray =[1,2]
const otherArray = array.slice(i); //i=1の時:otherArray = [2,3,4]
// i=1の時:subArrays = [[[2], [3], [4]], [[2,3],[4]], [[2],[3,4]], [[2,3,4]] ] が期待される
const subArrays = allSubArray(otherArray);
for(const subArray of subArrays) {
result.push([fixedArray].concat(subArray));
}
}
return result;
}
실행 결과
다 했어!!(어디에 쓰실까)
Reference
이 문제에 관하여(js로 배열을 분해한 모든 모드를 가져옵니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rr1029/items/15024ba889f82e1a88b1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
console.log(allSubArray([1,2,3]);
/*
[
[[1], [2], [3]],
[[1, 2], [3]],
[[1], [2, 3]],
[[1, 2, 3]]
]
(順番の入れ替え([[1, 3], [2]]など)は考慮しません)
*/
컴백해서 쓸 수 있을까요?
const allSubArray(array) => {
// 再帰終了条件
if(array.length === 0) return [[]];
cosnt result = [];
// array = [1,2,3,4]とする
/* 最初は0番目の要素[1]とそれ以外[2,3,4]に分割して考える */
const subArrays = allSubArray([2,3,4]);
// subArrays = [[[2], [3], [4]], [[2,3],[4]], [[2],[3,4]], [[2,3,4]] ] が期待される
// [1]とsbuArraysの各要素をくっつけたものをresultにpush
/* 期待されるresultは
[
[[1], [2], [3], [4]],
[[1], [2,3], [4]],
[[1], [2], [3,4]],
[[1], [2,3,4]]
]
*/
/* 次に、1番目までのの要素[1, 2]とそれ以外[3,4]に分割して考える*/
/* 今感じで行けるか・・・? */
}
해보자.
const allSubArray = (array) => {
// 再帰終了条件
if(array.length === 0) return [[]];
const result = [];
// array = [1,2,3,4]とする
/* 最初は0番目の要素[1]とそれ以外[2,3,4]に分割して考える */
for(let i = 1; i <= array.length; i++) {
const fixedArray = array.slice(0, i); //i=1の時:fixedArray = [1], i=2の時:fixedArray =[1,2]
const otherArray = array.slice(i); //i=1の時:otherArray = [2,3,4]
// i=1の時:subArrays = [[[2], [3], [4]], [[2,3],[4]], [[2],[3,4]], [[2,3,4]] ] が期待される
const subArrays = allSubArray(otherArray);
for(const subArray of subArrays) {
result.push([fixedArray].concat(subArray));
}
}
return result;
}
실행 결과
다 했어!!(어디에 쓰실까)
Reference
이 문제에 관하여(js로 배열을 분해한 모든 모드를 가져옵니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rr1029/items/15024ba889f82e1a88b1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const allSubArray = (array) => {
// 再帰終了条件
if(array.length === 0) return [[]];
const result = [];
// array = [1,2,3,4]とする
/* 最初は0番目の要素[1]とそれ以外[2,3,4]に分割して考える */
for(let i = 1; i <= array.length; i++) {
const fixedArray = array.slice(0, i); //i=1の時:fixedArray = [1], i=2の時:fixedArray =[1,2]
const otherArray = array.slice(i); //i=1の時:otherArray = [2,3,4]
// i=1の時:subArrays = [[[2], [3], [4]], [[2,3],[4]], [[2],[3,4]], [[2,3,4]] ] が期待される
const subArrays = allSubArray(otherArray);
for(const subArray of subArrays) {
result.push([fixedArray].concat(subArray));
}
}
return result;
}
다 했어!!(어디에 쓰실까)
Reference
이 문제에 관하여(js로 배열을 분해한 모든 모드를 가져옵니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rr1029/items/15024ba889f82e1a88b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)