数组
1.添加
arr.push(2,'pink'); //向末尾插入 返回新长度
arr.unshift('red','purple');//向前面插入,返回新长度
arr.splice(开始下标,删除个数,添加的元素)//直接操作原数组,返回被删除的元素,只用于数组
arr.slice(开始下标,结束下标(不包括))//不操作原数组,返回截取的数组,可用于字符串
2.删除
arr.pop(); //删除末尾的,一次只能删一个,不加参数,返回新删除元素的值
arr.shift(); //删除前面的,一次只能删一个,不加参数,返回删除元素的值
arr.splice(开始下标,删除个数,添加的元素)//直接操作原数组,返回被删除的元素,只用于数组
注:splice方法即可以添加也可以删除
3.排序(sort函数)
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
也可以写成:
var numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers);
// [1, 2, 3, 4, 5]
//对象可以按照某个属性排序
var items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic' },
{ name: 'Zeros', value: 37 }
];
// sort by value
items.sort(function (a, b) {
return (a.value - b.value)
});
// sort by name
items.sort(function(a, b) {
var nameA = a.name.toUpperCase(); // ignore upper and lowercase
var nameB = b.name.toUpperCase(); // ignore upper and lowercase
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
// names must be equal
return 0;
});
4.遍历
尽量用 for of
let arr = [1, 2, 44, 5, 5];
for (const item of arr) {
console.log(item);
}
对象
创建对象(3种)
字面量
var obj={
name: 'zht',
age: 18,
sex: '男',
sayHi:function(){
console.log("Hi~");
}
}
2. new Object()
var obj = new Object();
obj.name='高源';
obj.age=24;
obj.sex='女';
obj.sayHi = function() {
console.log('Hi~');
}
3. 构造函数创建
一次创建一个对象,多个对象的属性和方法有的是相同的
利用函数,重复这些代码
又因为函数封装的不是普通的代码,所以称为构造函数
构造函数里要使用this关键字
调用构造函数,必须使用new关键字,返回的是一个对象
function Star(name,age) {//首字母大写,不需要return
this.uname=name;
this.age=age
this.sing=function(song){
console.log(song)
}
}
//调用
var zht=new Star("高启强",20);
zht.sing('最炫民族风');
用构造函数创建对象的过程叫做实例化
new关键字执行过程
创建一个新的对象
this会指向这个对象
执行里面的代码,加属性和方法
返回这个对象
使用对象属性的两种方式
对象名.属性名 obj.name
对象名['属性名'] obj['name']
obj.name;
obj['name'];
遍历对象
使用for in
for(k in obj){
console.(obj[k]);
}