JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()

一、Array

1、some()和every()

some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。

var array = [1,3,5,7,9,11,13,15,17]
undefined
array.some(function(item,index){
    return item>9
})
//true

返回 true

var array = [1,3,5,7,9,11,13,15,17]
undefined
array.every(function(item,index){
    return item>9
})
//false

返回 false

2、join()

join() 方法用于把数组中的所有元素放入一个字符串。

var arr =[4,5,34,3453,3453,33,"哈哈哈哈"];
var arr2 = arr.join("");
console.log(arr2);
console.log(typeof(arr2)); //string
console.log(typeof(arr));   //object
//45343453345333哈哈哈哈
//string
//object

输出:

//45343453345333哈哈哈哈
//string
//object

3、concat()

连接2个以及更多的数组,返回一个新数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"

var array3 = arr.concat(arr2);
console.log(array3);
console.log(arr);
console.log(arr2);

输出:

(6) ["George", "John", "Thomas", "James", "Adrew", empty]
(3) ["George", "John", "Thomas"]
(3) ["James", "Adrew", empty]

4、pop()和push()和shift()和unshift()

会改变数组的本身的长度及内容。

不同的是 push()、pop() 是从数组的尾部进行增减unshift()、shift() 是从数组的头部进行增减

(1)push()是对尾部添加若干元素,unshift()是对头部添加若干元素,返回数组新长度

var arr = [1, 2];
arr.push(3,4);
console.log(arr);   //[1,2,3,4]

arr.unshift(0,0.5);
console.log(arr);  //[0,0.5,1,2,3,4]

(2)pop()从数组的尾部删除1个元素(删且只删除1个),并返回 被删除的元素;空数组是继续删除,不报错,但返回undefined;而shift()是对头部删除1个元素(只删除1个)。。。

//接上面数组arr
arr.pop()   //返回4
console.log(arr);  //[0, 0.5, 1, 2, 3]

arr.shift()  //返回0console.log(arr)    //[0.5,1,2,3]

5、map()

map“映射”,也就是原数组被“映射”成对应新数组。

var data = [1, 2, 3, 4];
var array = data.map(function (item) {
  return item * item;
});console.log(array)  //[1,4,9,16]

输出:[1,4,9,16]

var users = [
  {name: "张含韵", "email": "[email protected]","age":"18"},
  {name: "江一燕",   "email": "[email protected]","age":"34"},
  {name: "李小璐",  "email": "[email protected]","age":"28"}
];

var emailsAge = users.map(function (item) { return {email:item.email,age:item.age}});

输出

[{email: "[email protected]", age: "18"},{email: "[email protected]", age: "34"},{email: "[email protected]", age: "28"}]

6、filter()

filter()方法用于把Array的某些元素过滤掉,然后返回剩下的元素,并创建一个包含所有通过测试的元素的新数组。
function isBigEnough(element) {
     return element >= 10;
 }
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(filtered);//[ 12, 130, 44 ]

输出:[12,130,44]

功能(1):一个Array中,删掉偶数,只保留奇数

var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var num = arr.filter(function (x) {
     return x % 2 !== 0;
});console.log(num)  //[1,5,9,15]

功能(2):把Array中的空字符串删掉

 var arr = [‘A‘, ‘‘, ‘B‘, null, undefined, ‘C‘, ‘  ‘];
 var string = arr.filter(function (s) {
     return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
 });
 console.log(string); // [‘A‘, ‘B‘, ‘C‘]

功能(3):可以巧妙地去除Array的重复元素,

注意:去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。

var  r, arr = [‘apple‘, ‘strawberry‘, ‘banana‘, ‘pear‘, ‘apple‘, ‘orange‘, ‘orange‘, ‘strawberry‘];
r = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
});
console.log(r.toString()); //apple,strawberry,banana,pear,orange

原文地址:https://www.cnblogs.com/chengxs/p/9256570.html

时间: 2024-11-05 12:13:02

JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()的相关文章

js array filter pop push shift unshift方法

JavaScript Array filter() 方法  JavaScript Array 对象 实例 返回数组 ages 中所有元素都大于 18 的元素: var ages = [32, 33, 16, 40]; function checkAdult(age) {    return age >= 18;} function myFunction() {    document.getElementById("demo").innerHTML = ages.filter(c

字符串方法,js中的数组方法,ES5新增的数组方法,以及jQuery中的数组方法

说明:本片主要对比介绍与数组操作相关的方法 (一)字符串方法(String对象方法) indexOf() //检索字符串 lastIndexOf() //从后向前搜索字符串 match() //找到一个或多个正则表达式的匹配 replace() //替换与正则表达式匹配的子串 search() //检索与正则表达式相匹配的值 slice() //提取字符串的片断,并在新的字符串中返回被提取的部分 split() //把字符串分割为字符串数组 substr() //从起始索引号提取字符串中指定数目

js中的join(),reverse()与 split()函数用法解析

<script> /* * 1:arrayObject.reverse() * 注意: 该方法会改变原来的数组,而不会创建新的数组. * 2:arrayObject.join() * 注意:join() 方法用于把数组中的所有元素放入一个字符串. * 元素是通过指定的分隔符进行分隔的. * 指定分隔符方法join("#");其中#可以是任意 * 3:stringObject.split(a,b)这是它的语法 * 方法:用于把一个字符串分割成字符串数组. * a是必须的决定个

js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

js中数组增删查改unshift.push.pop.shift.slice.indexOf.concat.join 原文地址:https://www.cnblogs.com/mahmud/p/10301590.html

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

JS中的柯里化(currying)

何为Curry化/柯里化? curry化来源与数学家 Haskell Curry的名字 (编程语言 Haskell也是以他的名字命名). 柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果.因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程. 柯里化一个求和函数 按照分步求值,我们看一个简单的例子 var concat3Words = function (a

js中的事件,内置对象,正则表达式

[JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按下去触发 keypress: 键盘按下并松开的瞬间触发 keyup: 键盘抬起时触发 [注意事项:(了解)] ① 执行顺序: keydown--keypress--keyup ② 长按时,会循环不断的执行keydown-keypress ③ 有keydown事件,不一定有keyup事件(事件触发过程

JS中三种字符串连接方式及其性能比较

工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法  用连接符“+”把要连接的字符串连起来: str="a"; str+="b"; 毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便. 第二种方法  以数组作为中介用 join 连接字符串: var arr=new Array(); arr.push(a); arr.push

js中继承的几种用法总结(apply,call,prototype)

本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 <SPAN style="<SPAN style="FONT-SIZE: 18px"><html>   <body>  <script type="text/javascript">