Javascript 数组方法
<!--伪数组(伪数组无法使用数组方法),数组。
伪数组转化为数组的方法:Array.from(伪数组)
常见伪数组如下:arguments,document.getElementsByTagName('div');
其数组的方法有:
map(),filter(),forEach(),some(),every(),find(),findIndex(),sort(); 没有函数:indexOf(),lastIndexOf(),
字符串的方法有:
subString(),slice(),splice(),indexOf(),lastIndexOf(),indexOf(),padStart(num,"string"),str1.constart(str2);
字符串转化为数组的方法: split('');
数组转化为字符串的方法: join(); -->
<div>0</div>
<div>1</div>
<div>2</div>
<script type="text/javascript">
let array1=document.getElementsByTagName('div');
// array1.forEach(v=>console.log(v)); // array1.forEach is not a function
Array.from(array1).forEach(v=>console.log(v));// 输出各个div标签
// arguments 是每个函数皆有的主用于 存储参数的 类数组对象
function arguments(){console.log(arguments)};arguments(1,23,4,5);
// 有length属性;
// 伪数组虽无法用 forEach() 方法遍历,但可以用枚举:
for(let i in array1){ // 数组中 i 表示索引,枚举object类型时 i 表示属性名
console.log(array1[i]);
}
// 对象枚举时,因对象根据属性名获取值的方式有: obj.name 或 ojb['name'];
// 所以 枚举 object 类型时如据一格:
obj={name:"crazy",age:23};console.log(obj["name"]);
for(let i in obj){
console.log(i,obj[i],typeof(i)); // 因为 i 本身为字符串类型,所以 obj[i] 不用引号
}
// ....................................................................................................................
// ....................................................................................................................
// 数组中的方法:
// find(): 返回符合条件的元素后,便不会再执行,没有符合条件的返回 undefined
console.log(Array.from(array1).find(v=>v.innerHTML==2));// 返回第三个div标签
// findIndex(): 返回符合条件的元素下标后,便不会再执行,没有返回 -1
console.log(Array.from(array1).findIndex(v=>v.cssText="color:red"));
// indexOf(item,num); 没有函数
//Array.from(array1).indexOf(item,num) //从下标为num下开始查找,没有返回 -1 ,有就返回对应 item 的索引
// lastIndexOf(); 没有函数
// every(): 对数组元素进行检测,所有元素条件满足返回 true,有一个不满足返回 false 剩余不在检测
console.log(Array.from(array1).every(v=>{v>0,console.log(typeof(v))})); // false
// some(): 对数组元素进行检测,所用元素条件不满足返回 false,有一个满足返回 true 剩余不再检测
console.log(Array.from(array1).some(v=>console.log(v)));
// sort(function(a,b){a-b}): 排序 根据function来进行升序与降序排序,改变原始数据
// map(): 对数据进行获取操作;
array2=[{name:"aaa",age:23},{name:"bbb",age:24},{name:"ccc",age:21}];
let array3=array2.map(v=>v.name); console.log(array3);
// array3中的数据便是 array2 中所有name属性对应值的集合 // => ["aaa","bbb","ccc"]
// filter(): 对数组数据进行筛选操作
// forEach(); 遍历及操作;
aab={aa:1};
console.log(typeof(aab),aab==true,typeof(aab)=='object');