### es5新增的数组的api

+ indexOf() 搜索数组中的元素,并返回它所在的位置。

arr.indexOf(str,index)
参数: str为要查找的字符串 index为开始查找的下标 , index可省略

查找字符串a在数组中的位置,返回值为a在数组中第一次出现的位置的下标,如果没有找到字符串a,则返回-1

可用于去重:
var arr1 = [1,2,3,1,2,4,5,7]; //定义一个有重复字符的数组
var arr2 = []; //定义一个空数组
for (var i = 0, k = arr1.length; i < k; i++) {
if (arr2.indexOf(arr1[i]) == -1) { //当arr2中没有字符arr1[i]时
arr2.push(arr1[i]); //将此字符添加进arr2中
}
}
console.log(arr2); //打印arr2在控制台中

+ lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。

arr.lastIndexOf(str,index)
参数: str为要查找的字符串 index为开始查找的下标 index可省略

查找字符串str在数组中的最后出现的位置,返回值为str在数组中最后出现的位置的下标,
如果没有找到字符串str,则返回-1 或者可以说从数组的最后向数组的开始进行查找,
返回str在查找中第一次出现的位置的下标,如果没有找到字符串str,则返回-1

与indexOf结合可用于判断某个字符在数组中是否为唯一、或者判断数组中是否有重复的元素
// 判断字符串中的某个字符是不是唯一的
function onlyOne(arr, str) {
if (arr.indexOf(str) == arr.lastIndexOf(str)) {
console.log(str + "是惟一的");
} else {
console.log(str + "不是惟一的");
}
}
onlyOne(arr, "w");

// 从字符串中找出没有重复的字符。
for (var i = 0, k = str.length; i < k; i++) {
if (str.indexOf(str[i]) == str.lastIndexOf(str[i])) {
console.log(str[i]);
}
}

+ forEach() 遍历数组,并对数组的每个元素都执行一次回调函数。

arr.forEach(fuction(value, index, arr){})
参数: 为一个回调函数, 回调函数的参数: value为本次循环到的数组项
index为本次循环到的数组项的索引值(下标) arr为当前数组本身 index、arr可以省略

对数组arr进行遍历,并将每次循环得到的数组项以及索引传递给回调函数
当forEach()遍历的数组为空时,不会调用回调函数

+ map() 通过指定函数处理数组的每个元素,并返回处理后的数组。

array.map(function(currentValue,index,arr), thisValue)
参数: 回调函数 、对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue,或者传入 null、undefined, 那么回调函数的 this 为全局对象。 thisValue可省略

为每个数组项执行一次回调函数,返回的是一个新数组、不会对原数组造成影响。
例如:
arr.map(function(value,index,arr){
return value + 1;//把数组的每一项加1 然后映射到一个新的数组 不影响原数组
})

+ reduce() 将数组元素计算为一个值(从左到右)。

array.reduce(function(acc,value,index,arr){}
参数: acc为一个累计器、value为当前数组项、index为当前数组项的下标、arr为当前数组 index、arr可以省略

根据回调函数的返回值来决定是累加、累减、累除、累乘还是累模....
例: return acc + value; //累加

+ filter() 检测数值元素,并返回符合条件所有元素的数组。

arr.filter(function(value,index,arr){})
参数: 为一个回调函数, 回调函数的参数: value为本次循环到的数组项
index为本次循环到的数组项的索引值(下标) arr为当前数组本身 index、arr可以省略

根据回调函数的条件过滤数组、返回值为一个通过过滤条件的数组项组成的新数组
例如: return value > 5 //返回值大于5的数组项组成的数组

不想敲了........

### 字符串的创建方法
创建字符串的方法:

字面量:
var str = "";
var str = String();

构造函数方法:
var str = new String()

### str.length;
字符串的长度str.length

### 字符串的api
1.字符串.charAt(index) 根据下标获取字符串的某一个字符 》 应用:
1判断字符串的首字母是否大写、
2任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数

2.字符串.indexOf("") 查询字符再字符串中第一次出现的下标(如果没找到返回-1)
如果是两个参数。第二个参数代表从第几个查找。

应用:判断密码中是否含有特殊字符
字符串去重

3.字符串.lastIndexOf("") 查找字符再字符串中最后一次出现的位置
》 应用:判断字符串中的某个字符是不是唯一的
》 从字符串中找出没有重复的字符。

4.字符串.substring(start,end) 字符串的截取 (从start开始截取到end 不包括end)(不操作原字符串)

5.字符串.slice(start,end) 字符串的截取 (从start开始截取到end 不包括end)
(接受一个负的参数 -1代表从最后一个开始)(不操作原符串) str.slice(-3,-1) 倒数第三个不包括倒数第一个

6.字符串.substr(start,length) 从start开始截取长度为length的部分。
(如果参数是一个的情况下,是删除几个字符)(不操作原符串)

7.字符串.split(分隔符) 》 字符串翻转(转数组,数组翻找再赋值给字符串)(不操作原符串)

8.字符串.replace(old,newStr) 替换字符 不改变原字符串,返回新字符串,每次只能替换一个

### ASCII码
+ charCodeAt(下标)
+ String.fromCharCode(ASCII码)

str.charCodeAt('下标'); 获取的是ASCII码

String.fromCharCode(97) 把ASCII码转成字符

学习笔记-es5新增的一些数组的API(不全)-字符串-字符串API(不全)的更多相关文章

  1. 21天学通C++学习笔记(四):数组和字符串

    1. 数组 概念 是一组元素 这些元素是相同的数据类型 按顺序存储到内存中 目的是避免在业务需要时去重复声明很多同类型的变量 初始化 分别初始化:int i [5] = {1,2,3,4,5}; 全部 ...

  2. <c和指针>学习笔记3之函数和数组

    1 函数声明 (1)原型 告诉编译器函数的参数数量和每个参数的类型以及返回值的类型.编译器通过检查原型之后,就可以检查这个函数得调用,从而来确保参数正确,返回值无误. 通用技巧,将原型写在一个头文件当 ...

  3. JavaScript学习笔记(五)——类型、转换、相等、字符串

    第六章 类型 相等 转换等 一.类型 1 typeof(); typeof是一个内置的JavaScript运算符,可用于探测其操作数的类型. 例: <script language=" ...

  4. Julia 学习笔记(一):数组

    个人向,只会记录一些需要注意的点. 前言 学习 Julia 已经有一段时间了,但是进步缓慢.这一方面是最近代码写得少,一方面是 Julia 学习资料少.中文资料更少,但也有我没做笔记的缘故导致学习效率 ...

  5. C语言学习笔记(一):数组传递时退化为指针

    这几天闲来无事,写了一个数组元素排序函数如下: #include <stdio.h> #include <stdlib.h> void ArraySort(int array[ ...

  6. 《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

    Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比.Javascript数组中的元素不必为同样的数据类型,能够在数组每一个元素上混合使用数字.日期 ...

  7. JavaScript(ES6)学习笔记-Set和Map与数组和对象的比较(二)

    一.Map,Set,Array对比: 1.增 let map = new Map(); let set = new Set(); let array = []; map.set('t',1); //M ...

  8. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  9. 【学习笔记】Tensor多维数组和axis的理解

    Tensor多维数组和axis的理解 今天在编写程序的时候一直对于axis=0或等于1搞不明白,这样对于整个numpy或者是tensorflow的基本运算和数据处理都会很模糊,所以花了一些时间来搞清楚 ...

随机推荐

  1. 搭建 webpack、react 开发环境(二)

    配置处理样式文件   到目前为止,整个工程的配置已经差不多了,对于 React 更多相关的配置将在后面继续介绍,现在我们先来对目前的工程进行优化. 前面我们学习了搭建 webpack.react 开发 ...

  2. Centos7下源码编译安装与配置redis5.0

    1.下载redis5.0源码包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.检查是否安装过之前的历史版本 rpm -qa|g ...

  3. Linux帮助用法

    内部命令: help COMMAND 或 man bash 外部命令: (1) COMMAND --helpCOMMAND -h(2) 使用手册(manual)man COMMAND(3) 信息页in ...

  4. windows下基于(QPC)实现的微秒级延时

    1.为什么会写windows下微秒级延时 在上一篇 实现memcpy()函数及过程总结 中测试memcpy的效率中,测试时间的拷贝效率在微秒级别,需要使用微秒级时间间隔计数. windows下提供Qu ...

  5. python3.x 浅谈修饰器

    #装饰器用法,好处#简化代码,避免重复性代码#打印日志 @log#检测性能 @performance#数据库事务 @transaction#URL路由 @post('/register') 简单例子: ...

  6. ajax中json格式数据如何朝后端发送数据

  7. Hibernate Session 4种对象状态

    站在持久化的角度.Hibernate把对象分为4中状态. 临时状态. 持久化状态.游离状态.删除状态. 1:Save()方法: //这个是验证:1:save方法使临时对象------>变成持久化 ...

  8. 火狐插件火狐黑客插件将Firefox变成黑客工具的七个插件

    目前很多插件不支持 Firefox 3.5 哦1. Add N Edit Cookies 查看和修改本地的Cookie,Cookie欺骗必备. 下载:http://code.google.com/p/ ...

  9. Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo dp+矩阵快速幂

    E. Okabe and El Psy Kongroo   Okabe likes to take walks but knows that spies from the Organization c ...

  10. 洛谷P1087--FBI树(二叉树)

    题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三 ...