目录
在编程之路上,遇到一个小问题就困扰好久。。
- 数组,push添加元素的方法
- 循环遍历,foreach
- 处理数据:json对象,keys()正向推
,item提前设置为[ ] - page.evaluate()中传参
- Promise { pending }报错
- 控制台调试
一:数组[] :添加元素的方法:
let data1 = [1,2,3,4,5];
data1.push(6);
console.log('数组末尾添加',data1);
let data2 ={
'name':123,
'age':456
};
data2.sex = '男';
console.log('对象添加新属性',data2);
运行结果
1:区别 对象{ }
- ==赋值=:只一个对象
- 添加新属性 obj . key = value ;
- 判断对象含有某个属性
let data ={name:'',age:15,children:2};
if(data.hasOwnProperty('children')){
console.log("有孩子");
}
运行结果
2: 数组[ ]
- push() : 末尾添加一个对象 ,并操作新数组
- unshift() : 开始添加一个对象,并操作新数组
- shift() :取出第一个元素,并操作此元素
- pop() :取出最后一个元素,并操作此元素
- splice(): 在任意位置 添加或删除
- slice() :数组的截取
2.1 :splice()
//(开始位置, 删除的个数,添加元素)
let number = [0,1,2,3,4,5,6,7];
number.splice(2); //删去:第三个+ 之后的all
let aaa = number.splice(2,1); //aaa = 2
number.splice(2,1,"a","b","c");
console.log(number,'\n',number1,'\n',number2); // 打印的是number
2.2 数组的截取 slice()
let nums = [0,1,2,3,4,5,6,6,7,"a",9,10,{name:"zaking"},["b","c"]];
var a = nums.slice(1,5); //第一个元素为0, 最后一个元素为-1
console.log(a);//[1, 2, 3, 4]
3:pop()的操作
while(keywords.length>0){ //循环判断length
console.log('目前的关键词',keywords);
let keyword = keywords.pop().toString(); //取出单个元素
}
4:数组去掉重复的值
let list = [2,3,4,2,3,7,8];
let newlist = Array.from(new Set(list));
5:判断某个元素是否在数组内
console.log(a.indexOf(b)); //在,>-1
console.log(a.includes(b) === true); //在,为true
二:循环遍历每个元素
1: 数组.forEach(函数(item)) 遍历shop单个元素
let name =[];
array_all.forEach(function (item) {
name.push(item['id'])
})
console.log('数组所有数据中只取出每个元素的id,放到新数组中',name);
2:数组[ ]或对象{ } 的循环遍历,
asyncforeach (all, 函数async (单个元素){ } )
一定 添加 await
await asyncForEach(all, async(item,index) =>{
all.content = item;
console.log(index); // //用来计数
})
运行结果:
3: 获得属性值的方法
object . key
object [ ‘key’ ]
三:js处理的是json对象
let a = JSON.stringify(planData);
await asyncForEach(a, async(item) => {
console.log(item);
})
}
1:JSON.stringify( ) 转换为json对象
JSON.parse() json对象转化为 其它
2:否则,不执行程序
四:数据为{ '1 ':{ }, ' 2':{ }, ' 3':{ }}
处理数据,取出id[1,2,3],遍历id,正向取数据,
不需要转化为json格式,foreach处理
五:提取对象的keys(), values(), 生成新数组[]
let keys = Object.keys(Data);
let values = Object.values(Data);
console.log('对象的属性为:', keys );
1:返回一个新的列表 [ ]
六:在page.evaluate()中传参
async ( param )=>{
await page.evaluate(async ( param ) => {
console.log('我是参数', param )
} ,param )
}
七:报错提醒: Promise { pending }
解决方法:方法前面 添加 await
八:terminal ,控制台调试
1:同时运行多个程序
2:查询
Ctrl+F 输入单个汉字或英文词
九:字符串提取数字
parseFloat('110.65平方米') || 0
parseFloat('110.6500000平方米') || 0
parseFloat('-&&&') || 0
let a='20200413000000'; //截取日期
a= a.substr(2,6);
let b = Math.round(34109.123456); //四舍五入保留整数
let c = Math.round(1619.666666);
var num =2.446242342;
num = num.toFixed(2); //四舍五入保留2位小数
let nval = 0.08643333;
let d= (Math.round(nval*10000))/100+'%' //小数转化分数
let number = 2.21;
let d= (number/100).toFixed(4); //小数缩进2位数
console.log(d);
1:随机数
let num = Math.floor(Math.random()*20)+60; // 获取60到 80的随机整数。
console.log(num);
十:js参数注释
/** 点击回车
十一:返回数据处理
1:将字符串的首字母大写,其他字母不变
function firstUpperCase(str) {
let string = str.substring(0,1).toUpperCase()+str.substring(1);
return string;
}
十一:字符串的比较
console.log(a.indexOf(b));
console.log('---');
console.log(a.localeCompare(b));
console.log(a.includes(b) === true);
三目运算符
let shop= '否否否';
let iseffect = shop.includes('是')?111111:222222;
console.log(iseffect);
console.log(typeof (iseffect));