一起学习javascript-进阶版函数(2)

<script>

    // filter方法

    // 和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,

    // 然后根据返回值是true还是false决定保留还是丢弃该元素。

    // 下面我们来试一试取出里面的奇数

    let arr = [1,2,3,4,5,6,7,8,9,10]

    let newArr = arr.filter(function(item){return item%2===1});

    // 当1%2===1时,返回true,所以1被保留,3被保留,5被保留,7被保留,9被保留,其他被丢弃。

    // 打印一下

    console.log(newArr)//[1, 3, 5, 7, 9]

// 把一个Array中的空字符串删掉,可以这么写:

// var arr1 = ['A', '', 'B', null, undefined, 'C', '  '];

// var r = arr1.filter(function (s) {

//     return s && s.trim(); // 注意:IE9以下的版本没有trim()方法

// });

// console.log(r); // ['A', 'B', 'C']

// 回调函数

// filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:

console.log("回调函数")

var arr3= ['A', 'B', 'C','C','A', 'B', 'C'];

var r1 = arr3.filter(function (element, index, self) {

    console.log("依次打印"+element); // 依次打印A,B,C,C,A,B,C

    console.log("------")

    console.log(index); // 依次打印索引。0, 1, 2,3,4,5,6

    console.log("------------")

    console.log("数组"+self); // self就是变量arr打印A,B,C,C,A,B,C

    return true;

});

console.log("去重前的数组"+r1);

var r2 = arr3.filter(function (element, index, self) {

    return self.indexOf(element) === index;

});

console.log("去重后的数组"+r2);

// set方法也可以去重

var arr7=[1,2,3,4,5,5,2,4,3]

var arr5=[...new Set(arr7)];

console.log("去重后的数组"+arr5);//去重后的数组1,2,3,4,5

</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值