为了账号安全,请及时绑定邮箱和手机立即绑定

从数组中筛选出字符串

从数组中筛选出字符串

天涯尽头无女友 2022-08-04 16:52:08
我试图解决我在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[]
查看完整描述

5 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

function filterOutStringfromArr(array) {

    var arr = []

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

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

          arr.push(array[i])

        }

    }

    console.log(arr)

}

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

MDN链接相当不错


您应该使用它将附加到数组的末尾。通过将找到的元素插入到点中,您将从索引3到5,从而获得空元素。pushi


查看完整回答
反对 回复 2022-08-04
?
杨魅力

TA贡献1811条经验 获得超5个赞

就个人而言,我只会使用正常的数组过滤器函数并测试条件。让本机 array.filter 函数为您完成工作。下面将筛选数组并返回新数组(不修改现有数组)。


function filterToArrayOfNumbers(arrayElement) {

    return typeof arrayElement === 'number';

}

console.log([1,2,'A','B',123].filter(filterToArrayOfNumbers));


查看完整回答
反对 回复 2022-08-04
?
不负相思意

TA贡献1777条经验 获得超10个赞

过滤方法将解决您的问题。


function filterOutStringfromArr(array) {

    const newArray = array.filter(item => {

        if (typeof item === 'number') {

            return item;

        }

    })    

    console.log(newArray);

}


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


查看完整回答
反对 回复 2022-08-04
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我建议使用Array.prototype.push()方法。


function filterOutStringsfromArray(array) {

    var arr = [];

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

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

          arr.push(array[i]);

        }

    }

    return arr;

}


filterOutStringfromArr([5, 2, 'h', 2, 's', 2]) // Expected Output: ['h', 's']


查看完整回答
反对 回复 2022-08-04
?
长风秋雁

TA贡献1757条经验 获得超7个赞

arr[i] = array[i]  // <------------  your issue

i仍在递增,因此当您查看最后一个数字(索引 4)时,它会将新数组设置为索引 4(将 2 和 3 留空)123

而不是明确设置它,你可以做arr.push(array[i])

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push


查看完整回答
反对 回复 2022-08-04
  • 5 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信