JavaScript学习随记——数组二

来源:互联网 发布:java 可视化界面 编辑:程序博客网 时间:2024/06/06 14:29

数组indexOf(arg) 和 lastIndexOf(arg)方法使用

<script type="text/javascript" charset="utf-8">/** * indexOf(arg):返回指定参数在数组中的索引位置(从前往后查,比较是使用 ‘===’,查询到立即返回索引位置),如果没有则返回 -1 *  * lastIndexOf(arg):从后往前查arg,如果查询到则立即返回对应的索引值,如果没有则返回 -1 *  * 注:数组的索引位置都是从 0 开始索引 */        var arr=[1,734,23,7,90,4,true,12,1,0,23];console.log("【arr】: "+arr);console.log("【arr.indexOf(23)】:"+arr.indexOf(23));console.log("【arr.indexOf(true)】:"+arr.indexOf(true));var arr=[1,2,3,4,5,4,3,2,1];console.log("【arr】: "+arr);console.log("【arr.lastIndexOf(3)】: "+arr.lastIndexOf(3));console.log("【arr.lastIndexOf(10)】: "+arr.lastIndexOf(10));/********************* 【开始】运行结果 ********************【arr】: 1,734,23,7,90,4,true,12,1,0,23【arr.indexOf(23)】:2【arr】: 1,2,3,4,5,4,3,2,1【arr.lastIndexOf(3)】: 6【arr.lastIndexOf(10)】: -1********************* 【结束】运行结果 ********************/</script>


数组every迭代

<script type="text/javascript" charset="utf-8">/** * 数组五个新的迭代方法(ECMA5 数组新特性):every、filter、some、reduce、reduceRight * every:循环迭代并回调every参数中函数,循环迭代函数处理的结果如果都为true则返回true,否则返回false(类似于逻辑关系&&) *  * @return boolean */var arr=[87,12,9,5,34,5,0];var result=arr.every(function(item,index,arr){// item:循环迭代到的值// index:循环迭代到的索引位置// arr:循环的数组console.log("item: "+item+" ,index: "+index+", arr: "+arr);return item>3;});console.log("arr: "+arr);console.log("arr.every(): "+result);/********************* 【开始】运行结果 ********************item: 87 ,index: 0, arr: 87,12,9,5,34,5,0item: 12 ,index: 1, arr: 87,12,9,5,34,5,0item: 9 ,index: 2, arr: 87,12,9,5,34,5,0item: 5 ,index: 3, arr: 87,12,9,5,34,5,0item: 34 ,index: 4, arr: 87,12,9,5,34,5,0item: 5 ,index: 5, arr: 87,12,9,5,34,5,0item: 0 ,index: 6, arr: 87,12,9,5,34,5,0arr: 87,12,9,5,34,5,0arr.every(): false********************* 【结束】运行结果 ********************/</script>


数组filter迭代

<script type="text/javascript" charset="utf-8">/** * filter:循环迭代数组中符合条件的数据(返回符合筛选条件的元素,不影响被操作的对象) *  * @return [符合筛选条件的元素,符合筛选条件的元素、、、] */var arr=[87,12,9,5,34,5,0];var result=arr.filter(function(item,index,arr){return item>10;});console.log("arr: "+arr);console.log("arr.filter(): "+result);/********************* 【开始】运行结果 ********************arr: 87,12,9,5,34,5,0arr.filter(): 87,12,34********************* 【结束】运行结果 ********************/</script>


数组some迭代

<script type="text/javascript" charset="utf-8">/** * some:循环迭代并运行函数中的回调函数,若回调参函数运行结果含义true则返回true,否则返回false(类似于逻辑关系 || ) *  * @return boolean */var arr=[87,12,9,5,34,5,0];var result=arr.some(function(item,index,arr){return item<3;});console.log("arr: "+arr);console.log("arr.some(): "+result);/********************* 【开始】运行结果 ********************arr: 87,12,9,5,34,5,0arr.some(): true********************* 【结束】运行结果 ********************/</script>


数组reduce迭代

<script type="text/javascript" charset="utf-8">        /** * reduce: 从左往右顺序迭代(默认从索引1位置开始顺序迭代) *  * @param {Object} pre上一次循环迭代的返回值 * @param {Object} cur 循环迭代当前的值(默认从索引1位置开始顺序迭代) * @param {Object} index 循环迭代处的索引位置 * @param {Object} array 循环迭代的对象 */var arr=[87,12,9,5,34,5,0];var result=arr.reduce(function(pre,cur,index,array){console.log("index:"+index+" , pre:"+pre+" , cur:"+cur+" , array:"+array);return pre+cur;});console.log("result: "+result);/********************* 【开始】运行结果 ********************index:1 , pre:87 , cur:12 , array:87,12,9,5,34,5,0index:2 , pre:99 , cur:9 , array:87,12,9,5,34,5,0index:3 , pre:108 , cur:5 , array:87,12,9,5,34,5,0index:4 , pre:113 , cur:34 , array:87,12,9,5,34,5,0index:5 , pre:147 , cur:5 , array:87,12,9,5,34,5,0index:6 , pre:152 , cur:0 , array:87,12,9,5,34,5,0result: 152********************* 【结束】运行结果 ********************/</script>


数组reduceRight迭代

<script type="text/javascript" charset="utf-8">/** * reduceRight: 从右往左顺序迭代(默认从数组倒数第二个元素位置开始从右往左顺序迭代) *  * @param {Object} pre上一次循环迭代的返回值 * @param {Object} cur循环迭代当前的值(默认从数组倒数第二个元素位置开始从右往左顺序迭代) * @param {Object} index循环迭代处的索引位置 * @param {Object} array循环迭代的对象 */var arr=[87,12,9,5,34,5,0];var result=arr.reduceRight(function(pre,cur,index,array){console.log("index:"+index+" , pre:"+pre+" , cur:"+cur+" , array:"+array);return pre+cur;});console.log("result: "+result);/********************* 【开始】运行结果 ********************index:5 , pre:0 , cur:5 , array:87,12,9,5,34,5,0index:4 , pre:5 , cur:34 , array:87,12,9,5,34,5,0index:3 , pre:39 , cur:5 , array:87,12,9,5,34,5,0index:2 , pre:44 , cur:9 , array:87,12,9,5,34,5,0index:1 , pre:53 , cur:12 , array:87,12,9,5,34,5,0index:0 , pre:65 , cur:87 , array:87,12,9,5,34,5,0result: 152********************* 【结束】运行结果 ********************/</script>




1 0
原创粉丝点击