1.针对数组的逻辑判断
1)写一个函数,功能是判断字符串是否为对称的字符串;
涉及数组处理方法:1.concat();2.reverse();
function judgeStr(str) {
var a = str.split(‘‘);
var b = a.concat([]).reverse();
var i;
var count = 0;
for(i = 0;i< Math.ceil(a.length / 2);i++ ) {
if(a[i] === b[i]) {
count++;
};
};
if(count === Math.ceil(a.length / 2)) {
console.log("这是一个对称字符串");
}else {
console.log("这不是一个对称字符串");
}
};
2.数组去重
传统方法(只用来处理number类型):
function uniq(arr) { var len = arr.length, i, j; for(i = 0; i < len; i ++) { for( j = i + 1; j < len; j ++) { if(arr[j] === arr[i]) { arr.splice(j, 1);//去掉重复的数,数组长度减一;循环次数减一,索引值j减一,保证数组中所有数都参与查重判断; len --; j --; } } } return arr; }
多中类型的元素的数组去重;
function uniq(a) { var prims = {"boolean":{}, "number":{}, "string":{}},//数组元素类型 objs = []; return a.filter(function(item) { //Array原型对象prototype的filter方法,可以实现数组的遍历。 var type = typeof item; if(type in prims) { return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true); //hasOwnProperty()对象的一个方法 //用来判断某个属性是否存在;若存在则返回true; }else { //数组元素为非布尔,数字,字符串时的判断操作,因为元素若为对象无法进行比较(obj1===obj2,即使看起来一样,但是返回值仍为false) return objs.indexOf(item) >= 0 ? false : objs.push(item); //当数组中不存在该数是插入到新数组中; } }); }
暂存.
attr和data都是取自定义属性的
attr是取属性自身的值;
data是取内存中的值;
通过修改data,自定义属性值看起来不会改变,用attr去取值,仍为初始值,而在内存中的自定义属性值已经改变了;
时间: 2024-10-14 20:24:37