javascript Array学习(二)

首先感谢Dash 我再也不用到处乱找文档了

再次感谢日食记 让我的看到了世界的美好

好吧 array有什么好玩的方法吗 splice 很好玩的

splice 可以对数组进行删除 添加 修改操作

var myFish = [‘angel‘, ‘clown‘, ‘mandarin‘, ‘surgeon‘];

// 插入 
// 找到下表为2的位置 删除0个元素 插入 ‘drum‘
var removed = myFish.splice(2, 0, ‘drum‘);
// myFish is [‘angel‘, ‘clown‘, ‘drum‘, ‘mandarin‘, ‘surgeon‘]
// removed is [], no elements removed

// 在数组3的位置删除一个元素
removed = myFish.splice(3, 1);
// myFish is [‘angel‘, ‘clown‘, ‘drum‘, ‘surgeon‘]
// removed is [‘mandarin‘]

// 找到下表为2的位置 删除1个元素 插入 ‘drum‘ 
// 实际是执行了替换操作
removed = myFish.splice(2, 1, ‘trumpet‘);
// myFish is [‘angel‘, ‘clown‘, ‘trumpet‘, ‘surgeon‘]
// removed is [‘drum‘]

// 在位置0删除2个 增加3个
removed = myFish.splice(0, 2, ‘parrot‘, ‘anemone‘, ‘blue‘);
// myFish is [‘parrot‘, ‘anemone‘, ‘blue‘, ‘trumpet‘, ‘surgeon‘]
// removed is [‘angel‘, ‘clown‘]

// 从某一位置删除后面所有元素
removed = myFish.splice(3, Number.MAX_VALUE);
// myFish is [‘parrot‘, ‘anemone‘, ‘blue‘]
// removed is [‘trumpet‘, ‘surgeon‘]

sort方法

array的sort方法一点也不准确

var fruit = [‘apples‘, ‘bananas‘, ‘Cherries‘];
fruit.sort(); // [‘Cherries‘, ‘apples‘, ‘bananas‘];

var scores = [1, 2, 10, 21]; 
scores.sort(); // [1, 10, 2, 21]

var things = [‘word‘, ‘Word‘, ‘1 Word‘, ‘2 Words‘];
things.sort(); // [‘1 Word‘, ‘2 Words‘, ‘Word‘, ‘word‘]
// In Unicode, numbers come before upper case letters, which come before lower case letters.

实际上很准确啦 说是根据unicode码排序的

so 你可以自己写规则

function compare(a, b) {
  if (a < b) {
    return -1;
  }
  if (a > b) {
    return 1;
  }
  // a must be equal to b
  return 0;
}

比如数字排序

var numbers = [-4, -2, 5, 1, 3];
console.log(numbers.sort());

是不准确的

var numbers = [-4, -2, 5, 1, 3];
numbers.sort(function compare(a, b) {
  if (a < b) {
    return -1;
  }
  if (a > b) {
    return 1;
  }
  // a must be equal to b
  return 0;
});
console.log(numbers);

解决非Ascii码字符串排序

var items = [‘réservé‘, ‘premier‘, ‘cliché‘, ‘communiqué‘, ‘café‘, ‘adieu‘];
items.sort(function (a, b) {
  return a.localeCompare(b);
});

concat 扩展数组 没啥好说的

join 把数组变成字符串

slice 复制指定位置 形成新的array

var fruits = [‘Banana‘, ‘Orange‘, ‘Lemon‘, ‘Apple‘, ‘Mango‘];
var citrus = fruits.slice(1, 3);
// citrus contains [‘Orange‘,‘Lemon‘]

有关复制后形成的新数组变量问题

Using slice, create newCar from myCar.
var myHonda = { color: ‘red‘, wheels: 4, engine: { cylinders: 4, size: 2.2 } };
var myCar = [myHonda, 2, ‘cherry condition‘, ‘purchased 1997‘];
var newCar = myCar.slice(0,  3);
console.log(myCar);
console.log(newCar);

// Change the color of myHonda.
myHonda.color = ‘purple‘;
console.log(‘The new color of my Honda is ‘ + myHonda.color);

// Display the color of myHonda referenced from both arrays.
console.log(‘myCar[0].color = ‘ + myCar[0].color);
console.log(‘newCar[0].color = ‘ + newCar[0].color);

var myCar = [];
myCar = [{color:‘red‘, wheels:4, engine:{cylinders:4, size:2.2}}, 2, ‘cherry condition‘, ‘purchased 1997‘];
var newCar = [{color:‘red‘, wheels:4, engine:{cylinders:4, size:2.2}}, 2];
myCar[0].color = ‘purple‘;

console.log(myCar);
console.log(newCar);

从上面的例子看出并非完全不一样 里面有Object的话还是会一起改

时间: 2024-07-30 03:16:37

javascript Array学习(二)的相关文章

javascript Array学习

首先感谢Dash 我再也不用到处乱找文档了 再次感谢日食记 让我的看到了世界的美好 好的 我们进入正题 注解 我所有的学习心得都建立在ECMAscript5之后 IE9之前的浏览器概不负责 javascript Array是一个好玩的对象 如何检测她呢 首先instanceof是个不错的方法 if (value instanceof Array) { } 不过根据javascript高级程序设计说 这样做 如果一个人重新构造了Array函数 你完了 so 这样 if(Arrays.isArray

javascript Array学习与使用

一.Javascript数组是无类型的:数组元素可以任意类型,并且同一个数组中的不同元素也可能有不同的类型,javascript数组是动态的,会根据需要增长或者缩减,每一个数组都有一个length属性.它不是只读的,可以通过设置这个属性值,从数组的末尾移除项,或者添加新项 二.创建数组 (1)数组字面量表示方法: Var colors=[true,1,"green"]; //创建包含3个字符串的数组. Var arr=[];//创建一个空数组 Var b=[1,{x:1,y:2},[2

JavaScript基础学习&lt;二&gt;String类型

ECMAScript中的字符串是不可变的,字符串一旦创建,它们的值就不能改变,要改变某个变量的保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串来填充该变量. var lang="java"; lang=lang+"script"; 上面示例lang开始包含字符串"java",第二行重新定义为"java"和"script"的结合,即"javascript",在这个过程中

JavaScript 基础学习(二)

JavaScript 基础学习(二) instanceof方法: var s = "hello"; var i = 8; //typeof 只能判断基本数据类型 alert(typeof(s)); alert(typeof (i)); //对于引用数据类型,用instanceof var s2=new String("hello2") alert(typeof(s2)); alert(s2 instanceof String);//true var n = new

javascript基础学习(二)

javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操作符 typeof操作符用来检测变量的数据类型,操作符可以操作变量也可以操作字面量. 对变量或值运用typeof操作符得到如下值: undefined----如果变量是Undefined类型: boolean-------如果变量是Boolean类型: number-------如果变量是Numbe

javascript基础学习(十二)

javascript之BOM 学习要点: 屏幕对象 History对象 Location对象 一.屏幕对象 Screen对象是一个由javascript自动创建的对象,该对象的主要作用是描述客户端的显示器的信息. 目前显示器分辨率为800X600或1024X768两种. screen.height:屏幕的高度 screen.width:屏幕的宽度 screen.availHeigh:屏幕的有效高度 screen.availWidth:屏幕的有效宽度 二.History对象 History对象可以

javascript 基础学习整理 二 之 html对象总结,参考W3C

Anchor 对象 更改一个链接的文本.URL 以及 target 使用 focus() 和 blur() 向超链接添加快捷键 Document 对象 使用 document.write() 向输出流写文本 使用 document.write() 向输出流写 HTML 返回当前文档的标题 返回当前文档的 URL 返回当前文档的 referrer 返回下载当前文档的服务器域名 使用 getElementById() 使用 getElementsByName() 打开一个新的文档,添加一些文本,然后

javascript面向对象学习笔记(二)——创建对象

javascript面向对象学习笔记(二)--创建对象 工厂模式 该模值抽象了创建具体对象de过程.用函数来封装噫特定接口创建对象的细节. function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var person1=createPerson("Chiaki&

javascript Array 方法学习

原生对象Array学习 Array.from()   从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike  类似数组的对象或者可以迭代的对象 mapfn(可选)   对对象遍历映射的函数 this(可选)  选择映射函数的this对象 var charArr = Array.from("abc"); console.log(charArr[0]); //a var str = "abc"; console.log(str[0]); //a va