JS字符串与数组迭代方法

字符串的方法

charAt (index)查找对应下标的字符 返回该字符

charCodeAt() 查找对应下标的字符 返回该字符的unicode码

concat ()拼接字符串 返回拼接后的字符串,如果传参不是字符串则先调用toString()再进行拼接

slice(start,end) 截取字符串 返回被截取的字符串,传参(start,end)

substr ()截取字符串 与slice大致相同,只有再传参为负时有区别

substring(start,length) 截取字符串 返回被截取的字符串,传参(start,length)

splite() 用字符作为分隔符分割字符串 返回被分割后的数组

indexOf() 查找字符或者字符串 返回对应的第一个字符的下标,找不到返回-1

lastIndexOf(str) 查找字符或者字符串 最后一次出现的位置 找不到返回-1

replace()替换字符串中的字符 返回被替换后的字符串- - -可以用正则

match()查找字符或字符串 返回一个参数集,找不到返回null

search ()查找字符或字符串 返回对应的第一个字符的下标,找不到返回-1

toUpperCase() 转换字符串为大写 返回被改变后的字符串

toLowerCase() 转换字符串为小写 返回被改变后的字符串

replace(old,new) 替换字符串只替换第一个

数组的方法

1.把数组转换为字符串

JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串。

实例

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString(); 

结果
Banana,Orange,Apple,Mango

join()方法也可将所有数组元素结合为一个字符串。

它的行为类似 toString(),但是您还可以规定分隔符:

var fruits = ["Banana", "Orange","Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * "); 
//结果
//Banana * Orange * Apple * Mango

数组迭代方法

1.Array.forEach()

forEach()方法为每个数组元素调用一次函数(回调函数)。

实例

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
  }

注释:该函数接受 3 个参数:

项目值
项目索引
数组本身
上面的例子只用了 value 参数。这个例子可以重新写为:

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "<br>"; 
  }

2.rray.map()

map() 方法通过对每个数组元素执行函数来创建新数组。

map() 方法不会对没有值的数组元素执行函数。

map() 方法不会更改原始数组。

这个例子将每个数组值乘以2:

实例

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}

请注意,该函数有 3 个参数:

项目值
项目索引
数组本身
当回调函数仅使用 value 参数时,可以省略索引和数组参数

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

3.Array.filter()

filter()方法创建一个包含通过测试的数组元素的新数组。

这个例子用值大于 18 的元素创建一个新数组:

实例

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身
在上面的例子中,回调函数不使用 index 和 array 参数,因此可以省略它们:

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}

4.Array.reduce()

reduce()方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduce() 方法在数组中从左到右工作。另请参见 reduceRight()。

reduce() 方法不会减少原始数组。

这个例子确定数组中所有数字的总和:

实例

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

请注意此函数接受 4 个参数:

总数(初始值/先前返回的值)
项目值
项目索引
数组本身
上例并未使用 index 和 array 参数。可以将它改写为:

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

reduce()方法能够接受一个初始值:

实例

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}

5.Array.reduceRight()

reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduceRight()方法在数组中从左到右工作。另请参见 reduce()

reduceRight()方法不会减少原始数组。

这个例子确定数组中所有数字的总和:

实例

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

请注意此函数接受 4 个参数:

总数(初始值/先前返回的值)
项目值
项目索引
数组本身
上例并未使用 index 和 array 参数。可以将它改写为:

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}

6.Array.every()
every()方法检查所有数组值是否通过测试。

这个例子检查所有数组值是否大于 18:

实例

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身
如果回调函数仅使用第一个参数(值)时,可以省略其他参数:

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}

7.Array.some()
some()方法检查某些数组值是否通过了测试。

这个例子检查某些数组值是否大于 18:

实例

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身
8.Array.indexOf()
indexOf()方法在数组中搜索元素值并返回其位置。

注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。

实例
检索数组中的项目 “Apple”:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

9.Array.lastIndexOf()
Array.lastIndexOf()Array.indexOf()类似,但是从数组结尾开始搜索。

实例
检索数组中的项目 “Apple”:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

10.Array.find()
find()方法返回通过测试函数的第一个数组元素的值。

这个例子查找(返回)大于 18 的第一个元素的值:

实例

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身

11.Array.findIndex()
findIndex()方法返回通过测试函数的第一个数组元素的索引。

这个例子查找大于 18 的第一个元素的索引:

实例

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:
项目值
项目索引
数组本身

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值