int a = 10;
a += 20;
=>
a = a + 20
+= -=
nums[i] += nums[i - 1];
while循环和for循环 do while循环
while循环不明确具体执行次数 for循环知道具体次数
for是在满足循环条件下重复执行语句
while只要条件为true 循环可以一直执行下去。
num%2==0; 取余数
num/2 num除以2
数组的遍历。求和
forEach方法
arr.forEach(function(item.index,arr){})
item 必须有 当前元素的值
index 可有 索引
arr 遍历的数组
const arr = [99,8,9,7]
arr.forEach((item,index) =>{
console.log( item,index )
})
arr=[1,2,3,4]
let sum=0;
arr.forEach(item => {total = total + sum})
往常方法:可读性不好
int sum =0;
for(let i=0;i<arr.length;i++)
{sum += arr[i] }
return sum;
reduce:代码更整洁
arr = [1,2,4,5]
let result = arr.reduce((temp,item,index,data) => {return temp+item;},0)
//let result =arr.reduce((temp,item,index,data) =>{return temp})
reduce 传入了第二个参数,数组从第一项开始循环 第一次打印出来 0,1,temp取0,item取1
reduce没有传入第二个参数,数组从第二项开始循环,第一次打印出来,1,2,temp取1,item取2
reduce 非常常用,具体使用场景多。
[14,3,77,30].reduce((accumulator, currentValue)=>{
return accumulator = accumulator > currentValue ? accumulator : currentValue
});
问号表达式 从右向左看
sort方法 数组排序
Array.prototype.sort()
//给数字数组排序
arr=[1,3,4,5]
arr.sort((a,b)=>{return a-b})
//a-b>0 a排在b后面 升序
//a-b<0 a排在b前面 降序
//给对象数组排序
var items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'Zeros', value: 37 }
];
items.sort((a,b)=>{return a.value-b.value}) 升序排列
pop 删除 数组最后一个元素 返回删除元素
push 增加元素到末尾返回数组长度 可以添加多个
shift 删除数组第一个元素
unshift 增加元素到 头部 返回数组长度 可以添加多个