文档章节

javascript Array学习(二)

lbc19920615
 lbc19920615
发布于 2014/11/02 20:43
字数 627
阅读 84
收藏 8

首先感谢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的话还是会一起改

© 著作权归作者所有

上一篇: php使用sass
下一篇: javascript Array学习
lbc19920615
粉丝 6
博文 45
码字总数 11562
作品 0
南京
程序员
私信 提问
SugarCRM之在EditViews中调用js

方法一: (1) 在modules/modulename里面添加相应的modulename.js文件; (2) 在modules/modulename/metadata/editviewdefs.php中将js文件包含进来,并在相应的字段中加入响应函数。如下所...

JTurbo_Wu
2014/02/22
180
0
JavaScript基础-基本数据类型和基本流程控制

JavaScript基础1 一、基本数据类型 1.Number 2.String 3.Null 4.Undefined 5.true or false 二、字符串常用方法 1.解析字符串数字 parseInt:解析成整数 parseFloat:解析成小数 2.文本常见操...

pei_river
2018/09/06
7
0
js与php在数组与对象之间的差异

摘要:js和php都是弱类型语言,他们都支持跨平台,然后数据在使用时,都不需要定义类型。有点类似于c++的函数模板,自动判断类型。但他们还是有挺多区别的,下面简单的介绍下js和php在数组与...

魏邪乎
2014/07/21
1K
0
js的array实现栈数据结构

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步; 首先在阅读本文之前,默认你已经知道了javascript的数组类型,并且了解array的pop()和push方法;这里对这...

XBGG
2018/07/03
0
0
JavaScript 基础 --- (数据类型/循环/条件)

一、js 输出 1.window.alert() 警告框 2.document.write() 写到 HTML 文档中 3.innerHTML 写到 HTML 元素 4.console.log() 写到浏览器的控制台 二、js 语句与注释 1. ; (var a = 1;) ;表...

姜白告
2018/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

秒杀系统思路

业务分析 技术挑战 请求响应要快:无论成功失败,需要尽快返回给用户 架构设计   前端:静态化   站点层:限制请求数   服务层:乐观锁写缓存   数据库CAP:读写高可用,一致性,扩容...

雷开你的门
15分钟前
7
0
最全的教育行业大数据解决方案,个个针对痛点

大数据的悄然兴起也带动了教育行业的革新,移动教育、云课堂等的出现,使得教育行业再次成为了可以中长期保持高景气的行业。然而,初涉数据领域的教育行业同时也面临着相当大的难题,还需要更...

朕想上头条
19分钟前
5
0
预约模块设计分析

1.预约功能描述: 预约是小程序中常见的一种商品管理系统,商家可根据商品或服务的特性,灵活设置预约细节,为用户提供线上预约服务,如场地预约,商品预定等,实现高效经营。 预约场景: ...

鱼煎
22分钟前
4
0
阿里云日志服务构建网站实时分析大盘实战

场景分析 挖掘数据价值是当前企业级网站共同面临的问题。买买网是一个电商平台网站,每天拥有大量的用户访问和购买记录。为了引导用户直接消费,提升购买率和转化率,不同的用户类别需要推荐...

阿里云官方博客
23分钟前
2
0
TL665xF-EasyEVM开发板硬件处理器、NAND FLASH、RAM

广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高...

Tronlong创龙
26分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部