Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()

本文详细介绍了JavaScript中数组的多种操作方法,包括filter过滤、map映射、some与every的条件判断、forEach遍历及indexOf与lastIndexOf查找等,并通过实例展示了它们的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. filter的用法(过滤) 

  var arr = ['A','B','C'];
    var arr2 = arr.filter(function(element, index, self) {

        self.indexOf(element) == index;//数组也有indexOf这个函数

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

        console.log(index);// 依次打印0, 1, 2

        console.log(self);// self就是数组本身

        if(element!='A'){  return true;

        }else{   return false; }

    });
    console.log.(arr2);
    console.log.(arr);

2. map

    1)增加属性

var objs = [
    {name: 'aa', age: 11},
    {name: 'bb', age: 22},
    {name: 'cc', age: 33}];

objs.map(function (e) {
    e.addres = '北京';
});

    2)遍历

  var str=JSON.stringify($('#dtGridContainer_2_1_2').find('.dt-grid-row').map(function(){

        return{

            cycle:$(this).find('[name=cycle]').val(),

            replyDate:$(this).find('[name=replyDate]').val(),

            objectId:$(this).find('[name=objectId]').val(),

            mainTransfer:$(this).find('[name=mainTransfer]').val(),

            mainTransferLabel:$(this).find('[name=mainTransferLabel]').val()

        };

    }).get());
//将所有的数组元素转换为大写:

var strings = ["hello", "Array", "WORLD"];
function makeUpperCase(v)
{
    return v.toUpperCase();
}
var uppers = strings.map(makeUpperCase);
// uppers is now ["HELLO", "ARRAY", "WORLD"]
// strings is unchanged
//结果:["hello", "Array", "WORLD"].map(makeUpperCase) : HELLO, ARRAY, WORLD
3.some():

     对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回true,如果发现这个元素,some 将返回true,如果回调函数对每个元素执行后都返回 false ,some 将返回false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。

   //检查是否有数组元素大于等于10:
    function isBigEnough(element, index, array) {
        return (element >= 12);
    }
    var passed = [12, 5, 8, 1, 4].some(isBigEnough);//passed is falsepassed = [12, 5, 8, 1, 4].some(isBigEnough);
4.every():   

对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回false,如果发现这个元素,every 将返回false,如果回调函数对每个元素执行后都返回 true ,every 将返回true。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略

    

//测试是否所有数组元素都大于等于10:

function isBigEnough(element, index, array) {

    return (element >= 10);

}

var passed = [12, 5, 8, 130, 44].every(isBigEnough);

// passed is false

passed = [12, 54, 18, 130, 44].every(isBigEnough);

// passed is true

//结果:

//[12, 5, 8, 130, 44].every(isBigEnough) 返回 : false

//[12, 54, 18, 130, 44].every(isBigEnough) 返回 : true
5.forEach():
//打印数组内容:
    function printElt(element, index, array) {

        document.writeln("[" + index + "] is " + element);
    }

  [2, 5, 9].forEach(printElt);

//结果://[0] is 2//[1] is 5//[2] is 9
6.lastIndexOf();indexOf();

var index = array.lastIndexOf(searchElement[, fromIndex]);

index为-1 没有找到  找到返回所在位置的索引值

 

转载于:https://my.oschina.net/u/725790/blog/1542945

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值