㈠ javaScript 如何定义一个二维数组
方法一:
定义已知长度的二维数组,可直接定义并且初始化
var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]
方法二:
定义未知长度的二维数组
vartArray = newArray(); //先声明一维数组
for(vark=0;k<i;k++)//一维数组长度为i,i为变量,可以根据实际情况改变
{
tArray[k]=newArray(); //声明二维,每一个一维数组里面的一个元素都是一个数组
for(varj=0;j<p;j++)//一维数组里面每个元素数组可以包含的数量p,p也是一个变量
{
tArray[k][j]="1"; //这里将变量初始化,我这边统一初始化为1
}
}
(1)js怎么定义数据扩展阅读:
JavaScript多维数组的创建:
<script>
varallarray=newArray();
varres="";
functionloaddata()
{
for(vari=0;i<3;i++)
{
varstarth=i*200;
varstrarw=i*200;
varendh=(i+1)*200;
varendw=(i+1)*200;
allarray[i]=newArray();
allarray[i][0]=newArray();
allarray[i][1]=newArray();
allarray[i][0][0]=starth;
allarray[i][0][1]=strarw;
allarray[i][1][0]=endh;
allarray[i][1][1]=endw;
}
for(vari=0;i<allarray.length;i++)
{
varsh=allarray[i][0][0];
varsw=allarray[i][0][1]
vareh=allarray[i][1][0];
varew=allarray[i][1][1]
res+="第"+i+"个坐标的开始坐标是:"+sh+","+sw+"结束坐标是:"+eh+","+ew+"<br/>";
}
document.getElementById("dv").innerHTML=res;
}
</script>。
㈡ 在js中先定义一个空数组 用来存储获取的数据,如下,怎么知道数组获取数据的具体内容呢
var arrPic = {}; //定义一个空数组保存初始的长与宽
你把这个对象定义到全局中,比如这么写
var arrPic = {}; //定义一个空数组保存初始的长与宽
$(".p_Lst").each(function(index) {
var $this = $(this); //获取每个外框Div
var $img = $this.find("img"); //查找其中的图片元素
var $info = $this.find(".p_Alt"); //查询其中的图片信息元素
arrPic.imgw = $img.width();
arrPic.imgh = $img.height();
arrPic.orgw = $this.width();
arrPic.orgh = $this.height();
},
让后你把arrPic打印出来,你这样去试一下,应该没什么问题
㈢ js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。
懂字典或map的概念吗:
你需要的应该 是这样的数据结构:
varmenu={
"submenu1":[
{"name":"item1","id":"1","link":"
},
{"name":"item2","id":"2","link":"
}
],
"submenu2":[
{"name":"item1","id":"1","link":"
},
{"name":"item2","id":"2","link":"
}
],
}
//定义菜单方法
varmenu={};
//动态添加子菜单:
menu["submenu3"]=[];
//删除某个子菜单项
menu["submenu3"]=undefined;
//往子菜单中添加条目
menu["submenu3"].push({"name":"item1","id":"1","link":"
});
//删除一个条目
menu["submenu3"].splice(1,1);
//修改条目
menu["submenu3"][0]["link"]="
//查询条目属性
varitemName=menu["submenu3"][0]["name"];
//遍列整个菜单
for(varkeyinmenu){
console.log("key="+key);
varitems=menu[key];
for(vari=0;i<items.length;i++){
//后面的写法没错,体现的是js的灵活性
console.log("items["+i+"].name="+items[i]["name"]);
console.log("items["+i+"].link="+items[i].link);
}
}
㈣ echarts 怎样用js自定义图表数据
引入ECharts
echarts提供多种引入方式,请根据你的项目类型选择合适的方式:
模块化包引入
如果你熟悉模块化开发,你的项目本身就是模块化且遵循AMD规范的,那引入echarts将很简单,使用一个符合AMD规范的模块加载器,如esl.js,只需要配置好packages路径指向src即可,你将享受到图表的按需加载等最大的灵活性,由于echarts依赖底层zrender,你需要同时下载zrender到本地,可参考demo,你需要配置如下。
需要注意的是,包引入提供了开发阶段最大的灵活性,但并不适合直接上线,减少请求的文件数量是前端性能优化中最基本但很重要的规则,务必在上线时做文件的连接压缩。
//from echarts example
require.config({
packages: [
{
name: 'echarts',
location: '../../src',
main: 'echarts'
},
{
name: 'zrender',
location: '../../../zrender/src', // zrender与echarts在同一级目录
main: 'zrender'
}
]
});
模块化单文件引入(推荐)
如果你使用模块化开发但并没有自己的打包合并环境,或者说你不希望在你的项目里引入第三方库的源文件,我们建议你使用单文件引入,同模块化包引入一样,你需要熟悉模块化开发。
自2.1.8起,我们为echarts开发了专门的合并压缩工具echarts-optimizer。如你所发现的,build文件夹下已经包含了由echarts-optimizer生成的单文件:
dist(文件夹) : 经过合并、压缩的单文件
line.js : 折线图(如需折柱动态类型切换,require时还需要echarts/chart/bar)
bar.js : 柱形图(如需折柱动态类型切换,require时还需要echarts/chart/line)
scatter.js : 散点图
k.js : K线图
pie.js : 饼图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/funnel)
radar.js : 雷达图
map.js : 地图
force.js : 力导向布局图(如需力导和弦动态类型切换,require时还需要echarts/chart/chord)
chord.js : 和弦图(如需力导和弦动态类型切换,require时还需要echarts/chart/force)
funnel.js : 漏斗图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/pie)
gauge.js : 仪表盘
eventRiver.js : 事件河流图
treemap.js : 矩阵树图
venn.js : 韦恩图
echarts.js : 这是包含AMD加载器的echarts主文件,需要通过script最先引入
chart(文件夹) : echarts-optimizer通过依赖关系分析同时去除与echarts.js的重复模块后为echarts的每一个图表类型单独打包生成一个独立文件,根据应用需求可实现图表类型按需加载
source(文件夹) : 经过合并,但并没有压缩的单文件,内容同dist,可用于调试
采用单一文件使用例子见ECharts单一文件引入,存放在example/www下,首先你需要通过script标签引入echarts主文件
在主文件引入后你将获得一个AMD环境,配置require.conifg如下:
require.config配置后就可以通过动态加载使用echarts
总结来说,模块化单文件引入ECharts,你需要如下4步:
为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的)
通过script标签引入echarts主文件
为模块加载器配置echarts的路径,从当前页面链接到echarts.js所在目录,见上述说明
动态加载echarts及所需图表然后在回调函数中开始使用(容我罗嗦一句,当你确保同一页面已经加载过echarts,再使用时直接require('echarts').init(dom)就行)
详见入门教程 ( Getting started ) »
标签式单文件引入
自1.3.5开始,ECharts提供标签式引入。如果你的项目本身并不是基于模块化开发的,或者是基于CMD规范(如使用的是seajs),那么引入基于AMD模块化的echarts可能并不方便,我们建议你采用srcipt标签式引入,忘掉require。Srcipt标签引入echarts后将可以直接使用两个全局的命名空间:echarts,zrender,可参考ECharts标签式引入,需要注意的是excanvas依赖body标签插入Canvas节点去判断Canvas的支持,如果你把引用echarts的script标签放置head内在IE8-的浏览器中会出现报错,解决的办法就是把标签移动到body内(后)。
标签式引入环境中,常用模块的引用可通过命名空间直取,同模块化下的路径结构,如:
echarts.config = require('echarts/config'), zrender.tool.color = require('zrender/tool/color')