数组遍历 foreach map
程序员文章站
2024-02-17 15:35:04
...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// var arr = [1,2,3,4,,,1,2,,3,1,23]
// arr.forEach( function(数组中的元素,每个元素对应的下标,数组自身){
// } )
// var a = arr.forEach( (a,b,c) =>{
// console.log(a,b,c)
// return a+10 //return 无效
// } )
// console.log(a)
// 求数组中所有元素的和
// var sum = 0;
// arr.forEach( (item,index,arr)=>{
// sum += item
// } )
// console.log(sum)
// 使用foreach 可以跳过空元素
// var arr1 = []
// arr.forEach( (item,index,arr)=>{
// arr1[index] = item
// } )
// console.log(arr1)
// map 返回一个和原数组长度相等的新数组
// map 返回一个数组 可以对于原数组的数据进行处理后返回一个
// 新的数组 不能筛选什么的
// var newArr = arr.map( (item,index,arr)=>{
// return item*3
// } )
// console.log(newArr)
// console.log( JSON.parse(JSON.stringify(newArr)) )
// foreach 没有返回值 或者返回值为un
var arr=[
{id:1001,name:"电视",price:4500},
{id:1002,name:"电脑",price:6500},
{id:1003,name:"冰箱",price:2000},
{id:1004,name:"洗衣机",price:1000},
{id:1005,name:"手机",price:5500}
];
// forEach 遍历的是对象 传进去的是指针 就可以改变
// 对象数组 对象数组
// arr.forEach( (item)=>{
// item.num = parseInt( Math.random()*9 )
// item.total = item.num * item.price
// // item.price = 100
// } )
// console.log(arr)
// var arr1 = arr.map( (item)=>{
// item.num = parseInt( Math.random()*10 )
// item.total = item.price * item.num
// return item
// } )
// 这些遍历就改变了对象数组里面的值了
// 现在需要不改变原数组 完成一个新数组 里面有num和total
// console.log(arr,arr1)
// 也就是返回一个新的对象
var arr1 = arr.map( (item)=>{
var o = {};
for( var prop in item ){
o[prop] = item[prop]
}
o.num = parseInt(Math.random()*9+1);
o.total=o.price*o.num;
delete o.id;
delete o.price
return o
} )
console.log(arr1,arr)
</script>
</body>
</html>
上一篇: 速读Go语言圣经
下一篇: Symbol到底是个啥玩意