/*对比:
1、map速度比foreach快
2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,foreach返回undefined
3、map因为返回数组所以可以链式操作,foreach不能
4, map里可以用return ,而foreach里用return不起作用,foreach不能用break,会直接报错*/
/*方法一:*/
var arr1 = [1, 2, 3, 4, 5, 6]
for(var i = 0, len = arr1.lengthi <leni++) { //优化性能处理
console.log(arr1[i], 'for遍历出来的数据')//每个item 1,2,3,4,5,6
}
/*方法二:*/
/*forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身*/
var arr2 = [{
name: 'bob',
age: 20
},
{
name: 'tom',
age: 18
},
{
name: 'sos',
age: 19
}
]
arr2.forEach((val, i) =>{ //没有返回值的,对原来数组也没有影响
console.log(val, '遍历出来的每个obj')
})
/*方法三:*/
var fruits = [1, 2, 3, 4, 5, 6, 7, 8]
let arr = fruits.map((item, index) =>{
console.log(item, 'top')
console.log(index, 'top')
return item * 8
})
console.log(arr, 'newarr') //[8, 16, 24, 32, 40, 48, 56, 64] "newarr"
var a = fruits.indexOf("Apple", 4)
console.log(a)
//for 和 forEach都是普通循环,map 带返回值并且返回一个新数组;
/*
*当前元素的值,当期元素的索引值,当期元素属于的数组对象
语法:array.map(function(currentValue,index,arr), thisValue)
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
* */
/*方法四:*/
/*兼容写法:
不管是forEach还是map在IE6 - 8 下都不兼容( 不兼容的情况下在Array.prototype上没有这两个方法), 那么需要我们自己封装一个都兼容的方法:*/
/**
* forEach遍历数组
* @param callback [function] 回调函数;
* @param context [object] 上下文;
*/
Array.prototype.myForEach = function myForEach(callback, context) {
context = context || window
if('forEach' in Array.prototye) {
this.forEach(callback, context)
return
}
//IE6-8下自己编写回调函数执行的逻辑
for(var i = 0, len = this.lengthi <leni++) {
callback &&callback.call(context, this[i], i, this)
}
}
/**
* map遍历数组
* @param callback [function] 回调函数;
* @param context [object] 上下文;
*/
Array.prototype.myMap = function myMap(callback, context) {
context = context || window
if('map' in Array.prototye) {
return this.map(callback, context)
}
//IE6-8下自己编写回调函数执行的逻辑var newAry = []
for(var i = 0, len = this.lengthi <leni++) {
if(typeof callback === 'function') {
var val = callback.call(context, this[i], i, this)
newAry[newAry.length] = val
}
}
return newAry
}
</script>
只要循环不是中途退出的就说明没找到,所以这个n是“脱裤子放屁”多余的。这样即可:
/*
ATM取款程序
*/
//自定义二维数组
var AtmArray = [
[991, 123456, "张1", false, 0, 100],
[992, 123456, "张2", false, 0, 200],
[993, 123456, "张3", false, 0, 500]]
//定义函数
function qukuan(card, passWord, price) {
//遍历数据信息
for (var i = 0i <AtmArray.lengthi++) {
//判断卡号是否正确
if (AtmArray[i][0] == card) return "卡号正确"//如果找到匹配卡号,这里就直接跳出函数了
}
//程序运行到这里就说明没找到匹配的卡号,可以直接return了,不需要用个n来判断
return "找不到卡"
}
/*
[991, 123456, "张1", false, 0, 100],
*/
console.log(qukuan(990, 123456, 50))
vue 批量修改数组2021-10-27
Vue-动态修改数组
vue中修改数组,dom未更新的问题
vue $set修改数组
vue修改数组元素方法
Vue方法中修改数组某一项元素而不能响应式更新
仵航说 Vue用replace修改数组中对象的键值或者字段名 仵老大
vue 重塑数组之 修改数组指定index的值
node实现文件属性批量修改(文件名)
Excel VBA批量修改文件夹下的文件名
Vue不能检测数组或对象变动问题的解决
关于 vue 不能 watch 数组变化 和 对象变化的解决方案
js递归遍历多维数组并在修改数组的key后返回新的多维数组
vue中修改了数据但视图无法更新的情况
vue中修改了数据但视图无法更新的情况[转载]
c# 控制台应用程序批量修改文件夹下的后缀名(包括子文件夹)
MP实战系列(十三)之批量修改操作(前后台异步交互)
vue 不能监测数组长度变化length的原因
LINQPad_批量修改图片名称
个人永久性免费-Excel催化剂功能第22波-Excel文件类型、密码批量修改,补齐PowerQuery短板
vue中改变数组的值视图无变化
vue中改变数组或对象,页面没做出对应的渲染
热门专题
C# LIST升序排序数据库收缩没有作用 REPLICATIONPRETTIER默认配置自然语言处理 RST和PDTB的区别JQUERY绑定CHANGE事件碱基质量分布图怎么看FLUME中ARVO和THRIFTDOCKER镜像中文文件名MYBATIS中NUMBER类型用$还是#KINECT计算关节角度更改ANT DESIGN 表格样式不生效MY SQL建立用户在本机(127.0.0.1)登录ANDROID开发自动登录TOMCAT 里面的HTML修改了没变化苹果段用AUDIO播放声音 不能自动播放EASYEXCEL 2 读取EXCELNETCORE 使用IDENTITYBAT IE WEB全屏WPF DATAGRID 行高自动高度DATATABLES.JS 在TR追加CHECKBOX
Home
Powered By