좀 어려웟찌만 그래도
예쩐에는 ?
뭐임? 이랬는데
요즘은 흐름이 잘 보이는거 같아서 조금 발전 한거 같았다.
선생님이 아무생각없이 타자 치지 말고 생각!! 하고
계획 한다음 코드 쓰라고 하는데 진자 생각없이 쓰고 있다가
뭐하는거지!!
이러면서 반복중......
....ㅎ
> 문제해석 -> 말그대로 reverse 해서 나타내라는 말
var push_list = [];
const reverse = function (arr1) {
var list = arr1.split('')
받은 arr1을 array 하는 형식으로 바꾼다. -> 이때 자동으로 바꿔지니 또 안바꿔도 된다.!!!
push_list.push(list.pop());
어쩌피 array 의 마지막 부분만 사용하면 되니까 pop으로 부분만을 뺀다.
근데 이런 경우. ',' 가 string 에 포함되어 있어서 정답이 나오지 않는다. 따라서 replace 를 사용해서 바꿀려고 하니 . js가 반복된 것을 인식하지 못해서 하나만 바꿔준다고 한다. 그래서 /g<< 이것을 사용해서 바꿔줘야된다!!!
var neW_list = list.toString().replace(/,/g, '');
if (list.length < 1) {
console.log(push_list.toString().replace(/,/g, ''))
push_list = [];
return;
}
reverse(neW_list);

문제 해석 -> 말그대로 양날개의 문자가 같은가? 아니면 false 같다면 true 를 반환하라는 문제 이다.
// isPalindrome('awesome') // false
// isPalindrome('foobar') // false
// isPalindrome('tacocat') // true
// isPalindrome('amanaplanacanalpanama') // true
// isPalindrome('amanaplanacanalpandemonium') // false
const isPalindrome = function (arr1) {
var list = arr1.split('');
var final = list.length - 1;
if (list[0] != list[final]) {
return false;
}
if (arr1.length < 1) {
return true;
}
list.splice(-1, 1)
list.splice(0, 1)
> 이부분이 핵심! splice 함수는 배열 자체를 수정할수 있으니 이것을 사용해서 금방 해결!
var neW_list = list.toString().replace(/,/g, '');
> 수정한것을 다시 재귀 함수를 사용해서 돌아가게 만드는 과정이다.
return isPalindrome(neW_list);
}
console.log(isPalindrome('awesoma'));
console.log(isPalindrome('anessena'));
console.log(isPalindrome('tacocat'))
console.log(isPalindrome('amanaplanacanalpanama') )
console.log( isPalindrome('amanaplanacanalpandemonium') )
// reverse(arr1.pop())
}
reverse('awesome')
reverse('rithmschool')
// reverse('awesome') // 'emosewa'
// reverse('rithmschool') // 'loohcsmhtir'

var list = [];
const flatten = function (arr1) {
push_ob=[];
// console.log(arr1.length)
if(arr1.length<1){
console.log('hey')
return;
}
var push_ob=[];
arr1.forEach((fianl,index)=>{
if (typeof (fianl) == 'number') {
list.push(fianl);
//console.log(fianl)
}
else if (Array.isArray(fianl)) {
// push_ob.push(fianl);
// console.log(fianl)
return flatten(fianl)
}
})
// return flatten(push_ob);
// return(push_ob)
/*
if(push_ob.length>0){
return flatten(push_ob);
}
*/
}
flatten([1, 2, 3, [4, 5]])
console.log(list)
list=[];
flatten([1, [2, [3, 4], [[5]]]])
console.log(list)
많이 고민해봤는데 list 를 비우는 과정을 아직 생각해내지 못했다.. 어찌됫든 .. 돌아가긴 하는데.....-> 답지 보고 수정해야되겠다.!!
------02/19
-03/08->
재귀 문제
const obj = {
stuff: "foo",
data: {
val: {
thing: {
info: "bar",
moreInfo: {
evenMoreInfo: {
weMadeIt: "baz"
}
}
}
}
}
}
var ar = [];
const collectStrings = function (arr) {
var cocountun
for (var ob in arr) {
if (typeof (arr[ob]) == 'string') {
ar.push(arr[ob])
//console.log(ar)
}
else if (typeof (arr[ob]) == 'object') {
count = 1;
collectStrings(arr[ob]);
}
else if (count != 1) {
console.log('final')
return ar;
}
}
return ar
;
}
console.log(collectStrings(obj))
const nestedEvenSum = function (arr) {
var count;
for (var ob in arr) {
if (typeof (arr[ob]) == 'number') {
arr[ob] = arr[ob].toString();
// console.log(arr[ob], sum)
}
else if (typeof (arr[ob]) == 'object') {
count = 1;
nestedEvenSum(arr[ob]);
}
else if (count != 1) {
return;
}
}
return arr;
}
let obj = {
num: 1,
test: [],
data: {
val: 4,
info: {
isRight: true,
random: 66
}
}
}
console.log(nestedEvenSum(obj))
var sum = 0;
const nestedEvenSum = function (arr) {
for (var ob in arr) {
if (typeof (arr[ob]) == 'number') {
sum += arr[ob];
// console.log(arr[ob], sum)
}
else if (typeof (arr[ob]) == 'object') {
nestedEvenSum(arr[ob]);
}
}
return sum;
}
var obj1 = {
outer: 2,
obj: {
inner: 2,
otherObj: {
superInner: 2,
notANumber: true,
alsoNotANumber: "yup"
}
}
}
console.log(nestedEvenSum(obj1))
var sum = 0;
var obj2 = {
a: 2,
b: { b: 2, bb: { b: 3, bb: { b: 2 } } },
c: { c: { c: 2 }, cc: 'ball', ccc: 5 },
d: 1,
e: { e: { e: 2 }, ee: 'car' }
};
console.log(nestedEvenSum(obj2))
const capitalizeFirst = function (arr, index = 0) {
if (index == arr.length) {
console.log(arr)
return;
}
const arr_1 = arr[index].split('');
var na = [];
var nmae = arr_1.map((v, index) => {
if (index == 0) {
return (v.toUpperCase());
}
else {
return v;
}
})
arr.splice(index, 1);
arr.splice(index, 0, nmae.toString().replace(/,/g, ''))
++index;
capitalizeFirst(arr, index)
}
capitalizeFirst(['car', 'taco', 'banana'])