数组深入研究

一:稀疏数组

  稀疏素组就是包含从0个开始的不连续数组。通常,数组的length属性值代表数组中元素的个数。如果数组是稀疏,length属性值大于素数的个数。可以用Array(),构造函数或简单地指定数组的索引值大于当前的数组长度来创建稀疏数组。

<script>
    var a = new Array();
    a = [];
    a[1000] = 0;
</script>

  注意:当在数组直接量中省略值时不会创建稀疏数组。省略的元素在数组中是存在的。其值为undefined。这和数组元素根本不存在是有一些微妙的区别的。

<script>
    var a = new Array(3); /*【undefined,undefined,undefined】*/
    var b = [,,,];
    console.log( 0 in a);/*true*/
    console.log(o in b);/*false*/
</script>

二:数组元素的添加和删除

  1:为新索引赋值

var a = [];
a[0] = "qian";
a[1] = "wei";
console.log(a);

  2:利用push()方法在数组的末尾添加一个或多个元素

var a = [];
a[0] = "qian";
a[1] = "wei";
a.push("ke");
for(var i=0;i<a.length;i++){
    console.log(a[i])    /*qian,wei,ke*/
}

  3:可以像删除对象属性一样使用delete运算符来删除数组元素

var a = [];
a[0] = "qian";
a[1] = "wei";
a.push("ke");
delete a[2];
for(var i=0;i<a.length;i++){
    console.log(a[i])    /*qian,wei,undefined*/
}

  注意:对一个数组元素使用delete不会修改数组的length属性,也不会讲元素从高度索引处一下来填充。如果从数组中删除一个元素,他就会变成稀疏数组。

三:数组的遍历

  1:for循环遍历

var a = [];
a[0] = "qian";
a[1] = "wei";
a.push("ke");
for(var i=0;i<a.length;i++){
    console.log(a[i])    /*qian,wei,ke*/
}

  2:for/in循环处理稀疏数组。循环每次将一个可以枚举的属性名(包括索引)赋值给循环变量。不存在的索引不会被遍历到

var x
var mycars = [];
mycars[0] = "宝马"
mycars[1] = "奔驰"
mycars[3] = "宾利"

for (x in mycars)
{
document.write(mycars[x] + "<br />")   /*宝马 奔驰 宾利*/
}

四:ECMAScript 5 中的数组方法

  1:forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

[].forEach(function(value, index, array) {
  // ...
});
var data = [1,2,3,4];
var sum = 0;
data.forEach(function (t) {
sum+=t
});
console.log(sum);/*10*/

  2:map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组

var data = [1,2,3,4];
var sum = 0;
sum = data.map(function (value) {
    value++;
    return value
});
for(var i=0;i<sum.length;i++){
    console.log(sum[i])    /*2,3,4,5*/
}

  3:filter()方法返回的事数组的一个子集,传递的函数用来做判定。

var data = [1,2,3,4,5,6];
var sum = 0;
sum = data.filter(function (value) {
    return value > 3
});
for(var i=0;i<sum.length;i++){
    console.log(sum[i])    /*4,5,6*/
}

  4:every()和some()都是数组的逻辑判定,他们对数组元素应用指定的函数进行判定,返回true或者false。

  every()对应的是“针对所有”,当且仅当数组中的所有元素调用判定函数返回true。

var data = [1,2,3,4,5,6];
var sum = 0;
sum = data.every(function (value) {
    return value > 3
});
console.log(sum);/*false*/

  some()对应是“存在”,当数组元素至少有一个元素调用判定函数返回true,他就2返回true

var data = [1,2,3,4,5,6];
var sum = 0;
sum = data.some(function (value) {
    return value > 3
});
console.log(sum);/*true*/

  5:reduce()需要两个参数,第一个是执行化简操作的函数,第二个是初始值。

var data = [1,2,3,4,5,6];
var sum = 0;
sum = data.reduce(function (x,y) {
    return x+y
},0);
console.log(sum);/*21*/

  6:reduceRight()需要两个参数,第一个是执行化简操作的函数,第二个是初始值。计算顺序是从右到左。

var data = [1,2,3,4,5,6];
var sum = 0;
sum = data.reduceRight(function (x,y) {
    return x*y
},1);
console.log(sum);/*720*/

转载于:https://www.cnblogs.com/QianBoy/p/7594128.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值