하얀뼈
28
2021-09-03 11:30:52
8
200

간단하면서도 어려워보이는 javascript 배열 질문





let arr = [0.8, 0.5, 0, -1: NaN]


이런 형태의 배열이 있습니다.

예를들어 배열에서 0.8를 없애고 싶다고 하면,

arr.splice(0.8, 1); 를 사용하면 됩니다.


하지만... -1:NaN 이라는 값을 없앨 방법을 모르겠네요....

js고수님들 도와주십셔


참고로 arr.length = 3; 으로 강제 자르기도 해봤는데 통하지 않았슴다.....





0
  • 답변 8

  • hhj
    916
    2021-09-03 11:37:43 작성 2021-09-03 11:37:59 수정됨

    arr = arr.filter(v => v && v>0); 

    이런식으로 비슷하게하면 안대나여

  • 20170923
    2k
    2021-09-03 12:38:14

    -1: NaN이라는 값의 type이 뭔가요 json Object인가요?

  • 하얀뼈
    28
    2021-09-03 12:53:55

    @hhj

    와 -1은 사라지게 하는 데에 성공했는데 0도 같이 사라져 버리네유.....

    v>-1 로 변경했는데도 0이 여전히 사라집니다.


    그래도 좋은 방법 소개해주셔서 감사합니다.

  • 하얀뼈
    28
    2021-09-03 12:54:37

    @20170923

    typeof()로 보면 undefined라고 뜹니다

  • 하얀뼈
    28
    2021-09-03 13:00:15

    @hhj

    arr = arr.filter(v => v && v>0);  에서

    arr = arr.filter(v =>  v>-1); 로 바꾸니깐 해결 되네요.

    감사합니다!!

  • a785312468
    326
    2021-09-03 13:05:02 작성 2021-09-03 13:06:25 수정됨

    안녕하세요 지나가다가 궁금해서 여쭤봅니당

    splice에 인덱스값이 아닌 0.8이라는 소수도 들어갈수있나요??

  • 하얀뼈
    28
    2021-09-03 13:26:53

    @a785312468

    넣으니깐 작동은 잘 되네여

  • a785312468
    326
    2021-09-03 15:25:24 작성 2021-09-03 15:26:04 수정됨

    @하얀뼈

    확인해보니 arr.splice(0.5,1)-->이렇게 해도 arr의 0번째 인덱스로 찾아가 지우는거 보니 

    소수는 정수로 변환해 index값으로 넣어 작동하는 것 같습니다.

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