常见的JS数组和字符串的使用
1.将数组转成字符串
1.join()
let arr = ['1','23','kk','p']
let str1,str2,str3
str1 = arr.join()
str2 = arr.join(',')
str3 = arr.join('-')
console.log(str1,str2,str3)
2.toString()
let arr = ['1','23','kk','p']
let str = arr.toString()
console.log(str)
2.判断变量的数据类型
function isArray(object){
return object && typeof object==='object' &&
Array == object.constructor;
}
1.typeof 判断
var a="string"; console.log(typeof a);
var a=1; console.log(typeof a);
var a=false; console.log(typeof a);
var a; console.log(typeof a);
var a = null; console.log(typeof a);
var a = document; console.log(typeof a);
var a = []; console.log(typeof a);
2.instanceof 判断
var a=[];
console.log(a instanceof Array)
3.constructor 返回对应的构造函数
```javascript
function employee(name,job,born){
this.name=name;
this.job=job;
this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
console.log(bill.constructor);
var bill=889;
console.log(bill.constructor);
console.log(bill.constructor === Number);
3.获取文件后缀名
var fileName = "http://www.111cn.net/sys/nginx/62888.htm";
var fileExtension1 = fileName.substring(fileName.lastIndexOf('.') + 1);
var fileExtension2 = fileName.split('.').pop().toLowerCase();
4.文件类型判断
function isAssetTypeAnImage(ele) {
return ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(ele.toLowerCase()) !== -1;
}
var filePath = "file:///storage/emulated/0/opmark/User/Pic/hangge.png";
var index= filePath.lastIndexOf(".");
var ext = filePath.substr(index+1);
console.log("该文件是否为图片:" + isAssetTypeAnImage(ext));
5.获取对象中指定第n个的属性值
var a = {
id: "1111",
name: "bbbbb"
}
var temp=a[Object.keys(a)[0]]
var temp1=a[Object.keys(a)[1]]
console.log(temp,temp1)
6.获取对象的属性名和对应的属性值
let obj = {
name : "gao",
age : 26
};
for(var d in obj ) {
console.log(d,obj[d])
}
7.字符串的方法
1.substring()
8. 对象的深拷贝
var obj1 = {
a: "hello",
b: {
a: "hello",
b: 21
}
};
var cloneObj1= Object.assign({}, obj1);
cloneObj1.a = "changed";
cloneObj1.b.a = "changed";
console.log(obj1.a);
console.log(obj.b.a);
```javascript
var obj1 = { body: { a: 10 } };
var obj2 = JSON.parse(JSON.stringify(obj1));
obj2.body.a = 20;
console.log(obj1);
console.log(obj2);
console.log(obj1 === obj2);
console.log(obj1.body === obj2.body);
8. 数组扁平化处理
let arr = [
[1,2,3],
[5,6,7,8,9],
[12,[12,13,[11,13]],11],
10,
4
]
Array.prototype.flat= function(){
const result = this.map(item=>{
if(Array.isArray(item)){
return item.flat()
}
return [item]
})
return [].concat(...result)
}
arr.flat(Infinity)可以展开任意层级的数组
[... new Set(this)]
sort(a,b) => a - b;
console.log([...new Set(arr.flat(Infinity))].sort((a,b)=> a-b))