1.js中“||”和“&&”的高级用法
原文:https://cloud.tencent.com/developer/article/1355843
用于赋值 &&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦)
|| : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)
// => aaa
var attr = true && 4 && "aaa";
// => 0
var attr = true && 0 && "aaa";
// => 100
var attr = 100 || 12;
// => e
var attr = "e" || "hahaha"
// => hahaha
var attr = "" || "hahaha"
算是复习了一下逻辑运算符除了条件语句之外的用法
for循环中用此方法,A&&B,如果A为false则进入下次循环:
for(let i=matrix.length - 1; i> 0; i--){
matrix[i].length && res.push(matrix[i].shift())
}
详见我的LeetCode系列文章11.15
2.逻辑位运算符
https://www.cnblogs.com/yrjns/p/11246163.html
3.数组的四个基本方法:
array.push(n) / pop() / shift() / unshift(n)
分别是:在array后面加n,删除最后一个元素,删除第一个元素,在array前面加n
注意:都会修改原来的array,push和unshift是返回新数组,另两个删除是返回删除的元素
4.reverse()
reverse() 方法用于颠倒数组中元素的顺序。 arrayObject.reverse() 提示和注释 注释:该方法会改变原来的数组,而不会创建新的数组。
注意:只能用于数组
5.arr.concat(array1,array2,……)
concat() 方法用于连接两个或多个数组。 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
6.js 空数组是true还是false
https://www.cnblogs.com/frostbelt/p/3425498.html
7.slice(start,end) 切片
arrayObject.slice(start,end),里面的参数是索引值,end如果没有指定,那么切分的数组包含从 start 到数组结束的所有元素。
适用于字符串 和 数组,返回切片部分,
注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
8.sort() 冒泡排序
注意,数组在原数组上进行排序,不生成副本。
对数字排序,默认情况下sort方法是按ascii字母顺序排序的(看第一位数字),不是按数值的大小排序,所以要加一个函数。
arr1.sort(function(a, b) {
return a - b; //升序。 降序改为b-a
});
9.str/arr.indexOf(a,b)
字符串和数组都适用,返回的是首次出现的位置
a是某个值,必需。b是搜索的起始位置,若省略,则从0位开始
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。