js foreach用法,如何在js里面写foreach
js foreach用法,如何在js里面写foreach详细介绍
本文目录一览: js几种for循环的几种用法
第一种:普通for循环
for(j = 0; j < arr.length; j++) { }第二种:优化版for循环
for(j = 0,len=arr.length; j < len; j++) { }第三种:弱化版for循环
for(j = 0; arr[j]!=null; j++) { }第四种:foreach循环
arr.forEach(function(e){ });第五种:foreach变种
Array.prototype.forEach.call(arr,function(el){ });第六种:for in循环
for(j in arr) { }第七种:map遍历
arr.map(function(n){ });第八种:forof遍历(需要ES6支持)
for(let value of arr) { });
JS之for循环
JS的 for 循环主要包含如下几种: for(let i = 0; i < len; i++) , for-in , for-of , for-each 。
至于第一种 for 循环,地球人都会,按下不表。难点在于 for-in , for-of , for-each 直接有什么区别,看起来都差不多的样子。
一句话概述 for-in 与 for-of : for-in 遍历得到的是 key 值,适用于对象的遍历, for-of 得到的是 value 值,适合数组的遍历。只要有 iterator 接口的数据结构,都可以使用 for-of 循环,包括: Array, Map, Set, String, arguments对象, Nodelist对象
获得的是属性值
获得的是对象的索引值 遍历的时候不要用这个!
当给数组的原型添加属性时,for in 会遍历到原型链上的属性
这时候只要判断是不是本身所有的属性就行了
传入匿名的回调函数,匿名函数的参数为:当前项item,索引index(可省),当前数组array(可省)
for-of这个方法避开了for-in循环的所有缺陷 与forEach()不同的是,它可以正确响应break、continue和return语句
map遍历与foreach类似,支持使用return语句,支持return返回值
参考链接 link
javascript中的for each in怎么使用
http://www.kuaipao8.com/?p=683,看一下这个链接吧!for each in 我平常没有过,用到也只是for in,主要用作循环使用的,如果你想用到数组的键值的时候可以使用该函数!
js foreach 有哪些参数
map是循环一个数组然后返回一个值组成新的数组;
[1,2,3].map(function(v){return v*v}); //返回[1,4,9]foreach只是循环数组,无返回值(相当于for循环);
reduce是循环一个数组,然后组合成一个值
[1,2,3].reduce(function(prv,v){return prev+v}); //返回6
语法:
array.forEach(callback(currentValue, index, array){ // 此处省略代码}, this)参数:
callback:为数组中每个元素执行的函数
currentValue(当前值):正在处理的当前元素。
index(索引):正在处理的当前元素的索引。
array:forEach()方法正在操作的数组。
返回值:
undefined.
部分资料参考HTML5学堂
JS数组循环遍历常用的9种方法
首先定义一个数组
const arr = [1,2,3,4,5,6];
第一种:for循环
for (let i = 0;i
<arr.length;i++){
? ?console.log(arr[i]);
}
for(j=0,len=arr.length;j
<len;j++){} 这种方法基本上是所有循环遍历方法中性能最高的一种
第二种 for of?(需要ES6支持)?性能要好于forin,但仍然比不上普通for循环
for?(let?value?of?arr){
? ? ? ?console.log(value);
}
第三种 for in?它的效率是最低的
for?(let?i?in?arr){
? ? ? console.log(arr[i]);
?}
第四种 foreach()?实际上性能比普通for循环弱
????1、箭头函数写法
????arr.forEach(value?=>{
? ? ? ? console.log(value);
????})
????2、普通函数写法
????arr.forEach(function(value){
? ? ? ?console.log(value);
? ? ?})
第五种?entries()
for?(let?[index,?value]?of?arr.entries())?{
? ? ?console.log(value);
?}
第六种?keys()
for (let inx of arr.keys()){
console.log(arr[inx]);
}
第七种 reduce()
1、箭头函数
arr.reduce((pre,cur)=>{
? ? ? ?console.log(cur);
?})
2、普通函数
arr.reduce(function(pre,cur){
? ? ?console.log(cur);
})
第八种 map()?但实际效率还比不上foreach
1、箭头函数
?arr.map(value=>{
? ? ? ?console.log(value);
?})
2、普通函数
arr.map(function(value){
? ? ? console.log(value);
})
第九种?values()
for?(let?value?of?arr.values()){
? ? ? ?console.log(value);
?}
</arr.length;i++){
js中的 map,foreach,reduce 之间有什么区别么
map是循环一个数组然后返回一个值组成新的数组;
1[1,2,3].map(function(v){return v*v}); //返回[1,4,9]
forEach只是循环数组,无返回值(相当于for循环);
reduce是循环一个数组,然后组合成一个值
1[1,2,3].reduce(function(prv,v){return prev+v}); //返回6
假设我们有一个数组,每个元素是一个人。你面前站了一排人。
foreach 就是你按顺序一个一个跟他们做点什么,具体做什么,随便:
people.forEach(function (dude) {
dude.pickUpSoap();
});
map 就是你手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去。结束的时候你获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的顺序一一对应。
var wallets = people.map(function (dude) {
return dude.wallet;
});
reduce 就是你拿着钱包,一个一个数过去看里面有多少钱啊?每检查一个,你就和前面的总和加一起来。这样结束的时候你就知道大家总共有多少钱了。
var totalMoney = wallets.reduce(function (countedMoney, wallet) {
return countedMoney + wallet.money;
}, 0);
forEach: 对数组中每一个元素都运行函数,该方法没有返回值。如果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环
map:对数组中每一个元素都运行函数, 返回由每次函数执行的结果组成的数组。果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环,和forEach不同的是,它最终会返回一个新的数组,数组的元素是每次处理先前数组中元素返回的结果
reduce: 对数组中的所有元素调用指定的回调函数。 该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
还是看例子来理解吧:
var arr3 = [1,2,9,5,4];// 数组中每个元素都要翻10倍 var arr4 = arr3.map(function(ele,index,arr2) { return ele*10; }); console.log(arr4.toString()); //10,20,90,50,40 arr3.forEach(function(ele,index,arr){ console.log("模拟插入元素到数据库:"+ele); });打印结果: 模拟插入元素到数据库:1 模拟插入元素到数据库:2模拟插入元素到数据库:9 模拟插入元素到数据库:5模拟插入元素到数据库:4reduce的测试例子:
// Define the callback function.function appendCurrent (previousValue, currentValue) { return previousValue + "::" + currentValue; } // Create an array.var elements = ["abc", "def", 123, 456]; // Call the reduce method, which calls the callback function// for each array element.var result = elements.reduce(appendCurrent); document.write(result); // Output:// abc::def::123::456
2.简单了解js中的几种遍历
数组,可以用for循环遍历,性能比for in高,但对象,除了for in,我想不到还有什么可以遍历了。
方法: for, forEach,map,filter,every,some,in等
1. for循环,需要知道数组的长度,才能遍历,
2. forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度
3. map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变
4. filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变
5. some函数,遍历数组中是否有符合条件的元素,返回Boolean值
6. every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值
7、in, 除了遍历数组之外,还可以遍历对象
in 不仅可以用来 遍历对象,还可以用来遍历数组, 不过 i 对应与数组的 key值