js数组管理
数组
parseInt() 函数可解析一个字符串,并返回一个整数。
parseInt(string, radix)
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
arrayObject.splice(index,howmany,item1,…,itemX)
参数描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX 可选。向数组添加的新项目。
加 删
数组删除
this.list.splice(findIndex,1)
查找索引
findIndex
(item=>[
if(item.id==id){
return true
})
循环
forEach map
list.forEach(item=>{
})
非数组map
[].map.call(aConten,(current,index)=>{}
数组中是否包含这个
indexOf和includes
字符串包含字符串indexOf
item.name.indexOf(查找的东西)!=-1
includes == 1
数组新方法forEach、 some、 findIndex、filter
forEach不可以终止,不可控全循环
some 符合条件可以return true进行终止
findIdex 找到对应内一项的索引,定义个变量接受
filter 过滤,符合条件的得到新数组
遍历数组全部元素,利用回调函数对数组进行操作,自动遍历数组.length次数,且无法break中途跳出循环
因此不可控
不支持return操作输出,return只用于控制循环是否跳出当前循环
var arr = [1,2,3,4,5,] ;
arr.forEach(function(item,index){
console.log(item);
});
some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组
let arr = [ 1,2,3, 4,]
arr.some((item,i)=>{
if(i==2){
arr.splice(i,1)
console.log(arr)
return true
}
})
findIndex
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
注意: findIndex() 对于空数组,函数是不会执行的。
注意: findIndex() 并没有改变数组的原始值。
let arr = [ 1,2,3, 4,]
var index = arr.findIndex(item => {
if(item==2){
return true
}
})
arr.splice(index,1)
console.log(arr)
filter
var arr = [1,2,3,4,5,] ;
arr.filter((item,i) => {
if(item==3){
arr.splice(i,1)
}
})
console.log(arr)
(1)filter()是对数组中的每一项运行给定函数,返回该函数会返回true的项所组成的数组。
(2)map()是对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
(3)forEach() 是多数组中的每一项运行给定函数,这个方法没有返回值。它只是对数组中的每一项运行传入的函数,没有返回值。本质上与使用for循环迭代数组一样。
(4)every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
(5)some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
js储存对象
localstorage
window.localStorage
保存数据语法:localStorage.setItem("key", "value");
读取数据语法:var lastname = localStorage.getItem("key");
删除数据语法:localStorage.removeItem("key");
localstorage 需要保存json类型的数据对象
修改对象为json 对象方式
js 数组转json,json转数组
//数组转json串
var arr = [1,2,3, { a : 1 } ];
JSON.stringify( arr );
//json字符串转数组
var jsonStr = '[1,2,3,{"a":1}]';
JSON.parse( jsonStr );
//字符串拼接 join
js原生dom
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 document.querySelectorAll() 方法。来获取html中元素
使用 xxx.addEventListener()添加事件 或者函数 ** 可加多个
document.getElementById("myBtn").addEventListener("click", myFunction);
xhr.upload.addEventListener("progress", progressFn, false)
trim{
去除字符串的头尾空格:
var str = " Runoob ";
alert(str.trim());
}
使用 innerHTML 写入到 HTML 元素。
Array.from(类数组、字符串转化成数组)
DOM
使用appendChild()在节点之后以为添加
使用insertBefore()传递两个参数,第二个参数为参考节点,添加在之前
使用returnedNode()替换节点
使用removeChild()删除节点
使用cloneNode()拷贝节点 true深拷贝 false浅拷贝
使用offsetWidth 返回当前元素的 adding+border+width属性值之和
使用 style.width返回值就是定义的width属性值
使用~~(-)是取整
使用clientWidth 对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。
使用 scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。
使用 clientHeight 元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小)
使用appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。
使用 var a=new Image() 建立 img
使用Math.min(x,y) 取最小值
使用 forEach 循环数组 遍历
使用 for of xxx.enteries() 可遍历除object之外的所有,如遍历 object类型使用 arguments改变成类数组
for (let [index,fruit] of xxx.enteries()){
xxxxxxxxx
}
arguments 类数组
//
网页可见区域高:document.body.clientHeight
网页正文全文高:document.body.scrollHeight
网页可见区域高(包括边线的高):document.body.offsetHeight
网页被卷去的高:document.body.scrollTop
屏幕分辨率高:window.screen.height
//
使用 startswith 验证字符串 开始
endswith 字符串 结束
includes 在不在这里面
xxx.includes('dsadsadas')
reoeat 重复出现
‘哈’ reoeat(2)
使用 xxx.stayle.cssText 添加css样式
箭头函数的this值是继承父级的作用域不会随调用方法改变儿改变
onSubmit 点击
window.prompt
弹出输入
window.confirm
确认还是否定,有返回值 true 和false