循环绑定=>变量污染

for (var i = 0;i<lis.length;i++){
lis[i].index = i;#给页面元素对象添加一个任意属性(保留索引的属性index)
#循环绑定时,i分别是0,1,2,3,也就是给每个li进行事件的绑定,在绑定时,没有执行事件内部代码,只有在激活事件时才会执行,当循环结束后,i变为4(length为4),激活事件时,i已经变为4,console.log(i)打印的都是4
lis[i].onclick = function(){
console.log(this.index)
console.log(this.innerText)
}#this就能唯一指向当前激活事件的那个li对象
}

对象(字典)的增删改查

var dict = {
a:"AAA";
b:"BBB";
}
查:console.log(dict.a);
改:dict.a = "AAAAA";
增:dict.c = "CCC";
删:delete dict.b;
总结:只要是js对象,就可以随意添加属性

随机数

得到区间[min,max]之间的正整数
fun rnum(min,max){
return parseint(Math.random()*(max - min +1)) + min;
}

字符串操作

1.指定索引下的字符
var s="abcdef123456呵呵哈哈";
console.log(s.charAt(3)); 2.判断是否存在:呵呵是否在字符串中
-1代表不存在,其他表示存在
console.log(s.indexof("呵"));
console.log(s.lastIndexOf("呵")); 3.替换
var news = s.replace("abc","ABC");
总结:字符串为不可变类型,如果某操作要改变字符串,该操作一定拥有返回值
不存在的时候,不会报错 4.裁剪 slice(n,m)顾头不顾尾
news = s.slice(0,3); #取 0,1,2 5.拆分 数组
var ss = "123 456 abc def";
var arr1 = ss.split()#不写参数把整体当一个字母
var arr = ss.split("");#啥也不写,将字符串按一个个字符拆分

数组操作

var  arr = [3,5,1,2,4];
1.反转
arr.reverse()
可变类型,被反转过来了
2.排序
arr.sort()#默认顺序从小到大
arr.reverse()#从大到小排了
3.判断元素是否存在
arr.indexof(5)
4.拼接成字符串
var ss = arr.join(@);#与字符串的split方法相对
5.过滤器(保留符合条件的结果)
var newArr = arr.filter(function(ele){
if (ele%2 == 0){
return true;
}
return false;
}) var arr = [3,5,6,1,4];
var narr = arr.filter(function(ele){
if(ele%2 == 0 ){
return true;
}
});
console.log(narr);

数组的增删改查

1.查
arr[index]
2.改
arr[index] = newdata;
3.增
从尾加:push()
从头加:unshift() 4.删
pop()从尾删
shift()从头删 5.splice(begin,length,..eles);
开始索引,长度,值
长度为0,表示在开始索引处增加元素
长度为1,eles有值,表示将开始索引处更改为新值
长度为2,eles有值,表示将开始索引后的2个位置改为eles的值,长度增长同理
长度不为0,eles没值,表示将开始索引后长度删除

js对象,数组,字符串的操作的更多相关文章

  1. 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

    前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

  2. js对象数组中的某属性值 拼接成字符串

    js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六' ...

  3. JS对象—数组总结(创建、属性、方法)

    JS对象—数组总结(创建.属性.方法) 1.创建字符串 1.1 new Array() var arr1 = new Array(); var arr2 = new Array(6); 数组的长度为6 ...

  4. js对象数组多字段排序

    来源:js对象数组按照多个字段进行排序 一.数组排序 Array.sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序. 一般用法:(数组元素从小大进行排序) var a = ...

  5. JS 中数组字符串索引和数值索引研究

    先来看一个问题: var array = []; array["a"] = "hello"; array["b"] = "worl ...

  6. js对象 1字符串对象2时间日期对象3数字对象

    1字符串对象  直接对字符操作 var str = "这,是,不,是,字,符,串";        //字符串转数组  字符串.split(分隔符)        var arr ...

  7. js对数组的常用操作

    在js中对数组的操作是经常遇到的,我呢在这就列一下经常用到的方法 删除数组中的元素: 1.delete方法:delete删除的只是数组元素的值,所占的空间是并没有删除的 代码: var arr=[12 ...

  8. JS 对象 数组求并集,交集和差集

    一.JS数组求并集,交集和差集 需求场景 最近,自己项目中有一些数组操作,涉及到一些数学集的运算,趁着完成后总结一下. 简化问题之后,现有两数组a = [1, 2, 3],b = [2, 4, 5], ...

  9. js对象/数组深度复制

    今天碰到个问题,js对象.数组深度复制:之前有见过类似的,不过没有实现函数复制,今晚想了一下,实现代码如下: function clone(obj) { var a; if(obj instanceo ...

随机推荐

  1. awk一些简单命令

    最简单地说, AWK 是一种用于处理文本的编程语言工具.AWK 在很多方面类似于 shell 编程语言,尽管 AWK 具有完全属于其本身的语法. 尽管操作可能会很复杂,但命令的语法始终是: awk ' ...

  2. 07.Javascript——入门高阶函数

    高阶函数英文叫Higher-order function..JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...

  3. java threadLocal的初探

    在网上找了半天,终于找到一篇靠谱的文章了. 文章地址:http://qifuguang.me/2015/09/02/[Java%E5%B9%B6%E5%8F%91%E5%8C%85%E5%AD%A6% ...

  4. REST访问(RestTemplate)

    https://www.cnblogs.com/softidea/p/6910198.html 经常需要发送一个GET/POST请求到其他系统(REST API),通过JDK自带的HttpURLCon ...

  5. [转]Cordova android框架详解

    本文转自:http://www.cnblogs.com/hubcarl/p/4202784.html 一.Cordova 核心java类说明 CordovaActivity:Cordova Activ ...

  6. 通过Chrome执行watir-webdriver

    1.http://code.google.com/p/chromedriver/downloads/list  下载chromedriver驱动文件chromedriver.exe 2.把驱动文件放在 ...

  7. P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers

    题目描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少.在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人.然而,在任何一群朋友中 ...

  8. Spring使用_进阶

    概述 本文主要写了几个关于Spring Aware,多线程,计划任务(定时任务),条件注解,组合注解,元注解,Spring测试的小例子以及关于@Enable*注解的工作原理的理解. Spring Aw ...

  9. 说说JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?

    1.JVM原理 JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以 ...

  10. hihocoder1829 Tomb Raider

    思路: 暴力枚举. 实现: #include <iostream> #include <set> #include <vector> using namespace ...