从数组中筛选出字符串

我试图解决我在Javascript中面临的一个问题,我对JS完全陌生。这是我的代码:


    function filterOutStringfromArr(array) {

        var arr = []

        for (var i = 0; i < array.length; i++) {

            if (typeof array[i] === 'number') {

                arr[i] = array[i]

            }

        }

        console.log(arr)

    }

    filterOutStringfromArr([1,2,'A','B',123])

当我运行这个时,我得到这个结果:.[ 1, 2, <2 empty items>, 123 ]


我知道这种情况正在发生,因为我的数组的长度是5。但是我只想将过滤后的值附加到空数组中。我该怎么做?arr[]


天涯尽头无女友
浏览 212回答 5
5回答

MMTTMM

function filterOutStringfromArr(array) {&nbsp; &nbsp; var arr = []&nbsp; &nbsp; for (var i = 0; i < array.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (typeof array[i] === 'number') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arr.push(array[i])&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; console.log(arr)}filterOutStringfromArr([1,2,'A','B',123])MDN链接相当不错您应该使用它将附加到数组的末尾。通过将找到的元素插入到点中,您将从索引3到5,从而获得空元素。pushi

杨魅力

就个人而言,我只会使用正常的数组过滤器函数并测试条件。让本机 array.filter 函数为您完成工作。下面将筛选数组并返回新数组(不修改现有数组)。function filterToArrayOfNumbers(arrayElement) {&nbsp; &nbsp; return typeof arrayElement === 'number';}console.log([1,2,'A','B',123].filter(filterToArrayOfNumbers));

不负相思意

过滤方法将解决您的问题。function filterOutStringfromArr(array) {&nbsp; &nbsp; const newArray = array.filter(item => {&nbsp; &nbsp; &nbsp; &nbsp; if (typeof item === 'number') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return item;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; })&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; console.log(newArray);}filterOutStringfromArr([1,2,'A','B',123])

一只甜甜圈

我建议使用Array.prototype.push()方法。function filterOutStringsfromArray(array) {&nbsp; &nbsp; var arr = [];&nbsp; &nbsp; for (let i = 0; i < array.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (typeof array[i] === 'string') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arr.push(array[i]);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return arr;}filterOutStringfromArr([5, 2, 'h', 2, 's', 2]) // Expected Output: ['h', 's']

长风秋雁

arr[i]&nbsp;=&nbsp;array[i]&nbsp;&nbsp;//&nbsp;<------------&nbsp;&nbsp;your&nbsp;issuei仍在递增,因此当您查看最后一个数字(索引 4)时,它会将新数组设置为索引 4(将 2 和 3 留空)123而不是明确设置它,你可以做arr.push(array[i])https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript