dojo 官方翻译 dojo/_base/array 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/_base/array.html#dojo-base-array
array模块dojo进行了很好的封装,如果想要调用必须先加载该模块:
require(["dojo/_base/array"], function(array){
// array contains the features
});
indexOf()
返回值:字符串在数组中第一次出现的位置,如果没有找到默认返回-1.
require(["dojo/_base/array"], function(array){
array.indexOf(arrayObject, valueToFind, fromIndex, findLast);
});
示例:
require(["dojo/_base/array", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, dom, domConst, on){ var arrIndxOf = ["foo", "hoo", "zoo"]; on(dom.byId("refButton1"), "click", function(){
var position = array.indexOf(arrIndxOf, "zoo");
domConst.place(
"<p>The index of the word 'zoo' within the array is " + position + "</p>",
"result1",
"after"
);
}); });
<div>The content of our test array is <code>["foo", "hoo", "zoo"]</code>.</div>
<button id="refButton1" type="button">Show the index of the word 'zoo' within the array.</button>
<div id="result1"></div>
lastIndexOf()
返回值:字符串在数组中的最后位置,如果没有找到默认返回-1.
require(["dojo/_base/array"], function(array){
array.lastIndexOf(arrayObject, valueToFind, fromIndex);
});
示例:
require(["dojo/_base/array", "dojo/dom-construct", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(array, domConst, dom, on){ var arrLastIndxOf = ["foo", "hoo", "zoo", "shoe", "zoo", "nuu"]; on(dom.byId("refButton2"), "click", function(){
var position = array.lastIndexOf(arrLastIndxOf, "zoo");
domConst.place(
"<p>The last index of the word 'zoo' within the array is " + position + "</p>",
"result2",
"after"
);
});
});
<div>The content of our test array is <code>["foo", "hoo", "zoo", "shoe", "zoo", "nuu"]</code>.</div>
<button id="refButton2" type="button">Show the last index of the word 'zoo' within the array.</button>
<div id="result2"></div>
forEach()
遍历数组或者nodelists。
require(["dojo/_base/array"], function(array){
array.forEach(arrayObject, callback, thisObject);
});
第三个参数,调节forEach()的访问范围。
示例:
require(["dojo/_base/array"], function(array){
var foo = {
myMethod: function(el){
console.log(el);
}
};
array.forEach(["a","b","c"],function(item){
this.myMethod(item);
}, foo);
});
如果你想break这个循环,可以使用some()
require(["dojo/_base/array", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(array, dom, on){ on(dom.byId("start"), "click", function(){
var myArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
count; // iterate ALL entries of myArray
count = 0;
array.forEach(myArray, function(entry){
count++;
}); alert("iterated " + count + " entries (forEach())"); // will show "iterated 10 entries" // let's only iterate the first 4 entries of myArray
count = 0;
array.some(myArray, function(entry){
if(count >= 4){
return false;
}
count++;
}); alert("iterated "+count+" entries (some())"); // will show "iterated 4 entries"
});
});
<button id="start" type="button">Start Testloops</button>
filter()
返回值:数组过滤之后的结果数组。
require(["dojo/_base/array"], function(array){
filteredArray = array.filter(unfilteredArray, callback, thisObject);
});
示例:
require(["dojo/_base/array", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, dom, domConst, on){
var arr = [
{ surname: "Washington", name: "Paul" },
{ surname: "Gordon", name: "Amie" },
{ surname: "Meyer", name: "Sofie" },
{ surname: "Jaysons", name: "Josh" },
{ surname: "Washington", name: "George" },
{ surname: "Doormat", name: "Amber" },
{ surname: "Smith", name: "Susan" },
{ surname: "Hill", name: "Strawberry" },
{ surname: "Washington", name: "Dan" },
{ surname: "Dojo", name: "Master" }
]; on(dom.byId("start"), "click", function(){
var filteredArr = array.filter(arr, function(item){
return item.surname == "Washington";
}); array.forEach(filteredArr, function(item, i){
domConst.create("li", {innerHTML: i+1+". "+item.surname+", "+item.name}, "filtered-items");
}); array.forEach(arr, function(item, i){
domConst.create("li", {innerHTML: i+1+". "+item.surname+", "+item.name}, "unFiltered-items");
});
});
});
<button id="start" type="button">Filter array</button>
<br/>
<div style="width: 300px; float: left;">
Filtered items<br />
(only people with "Washington" as surname)
<ul id="filtered-items"> </ul>
</div>
<div style="width: 300px; float: left;">
Unfiltered items<br />
(all people are represented in the list)
<ul id="unFiltered-items"> </ul>
</div>
map()
返回值:经过修改之后的另外一个数组。
require(["dojo/_base/array"], function(array){
array.map(arrayObject, callback, thisObject);
});
示例:
require(["dojo/_base/array", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, dom, domConst, on){ var arrValues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; on(dom.byId("button"), "click", function(){
var doubleValue = array.map(arrValues, function(item){
return item * 2;
}); array.forEach(doubleValue, function(item){
var li = domConst.create("li");
li.innerHTML = item;
dom.byId("arrValuesAfter-items").appendChild(li);
}); array.forEach(arrValues, function(item){
var li = domConst.create("li");
li.innerHTML = item;
dom.byId("arrValues-items").appendChild(li);
});
});
});
<button id="button" type="button">Run array.map()</button>
<br />
<div style="width: 300px; float: left; margin-top: 10px;">
Values before running array.map()
<ul id="arrValues-items"></ul>
</div>
<div style="width: 300px; float: left; margin-top: 10px;">
Values after running array.map()
<ul id="arrValuesAfter-items"></ul>
</div>
有时候为了不修改原数组本身,dojo提供了dojo/_base/lang::clone()
示例:
require(["dojo/_base/array", "dojo/_base/lang", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, lang, dom, domConst, on){ var arrSalary = [
{ surname: "Washington", name: "Paul", salary: 200 },
{ surname: "Gordon", name: "Amie", salary: 350 },
{ surname: "Meyer", name: "Sofie", salary: 100 },
{ surname: "Jaysons", name: "Josh", salary: 2500 },
{ surname: "Washington", name: "George", salary: 10 },
{ surname: "Doormat", name: "Amber", salary: 320 },
{ surname: "Smith", name: "Susan", salary: 3200 },
{ surname: "Hill", name: "Strawberry", salary: 290 },
{ surname: "Washington", name: "Dan", salary: 200 },
{ surname: "Dojo", name: "Master", salary: 205 }
]; on(dom.byId("button"), "click", function(){
var raisedSalaries = array.map(arrSalary, function(item){
var newItem = lang.clone(item);
newItem.salary += (newItem.salary/100)*10;
return newItem;
}); array.forEach(raisedSalaries, function(item, i){
var li = domConst.create("li");
li.innerHTML = i+1+". "+item.surname+", "+item.name+". New salary: "+item.salary;
dom.byId("filteredSalary-items").appendChild(li);
}); array.forEach(arrSalary, function(item, i){
var li = domConst.create("li");
li.innerHTML = i+1+". "+item.surname+", "+item.name+". Old salary: "+item.salary;
dom.byId("unFilteredSalary-items").appendChild(li);
});
});
});
<button id="button" type="button">Raise the salary</button>
<br />
<div style="width: 300px; float: left; margin-top: 10px;">
Peoples' salaries after raise:
<ul id="filteredSalary-items"></ul>
</div>
<div style="width: 300px; float: left; margin-top: 10px;">
Peoples' salaries before raise:
<ul id="unFilteredSalary-items"></ul>
</div>
some()
返回值:true or false。只要方法里有一个是真,那么其将会返回true。常常被用在if语句中。
require(["dojo/_base/array"], function(array){
var a = array.some(arrayObject, callback, thisObject);
});
示例:检查是否有一个值 >= 1,000,000。
require(["dojo/_base/array", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, dom, domConst, on){
var arrIndxSome = [200000, 500000, 350000, 1000000, 75, 3]; on(dom.byId("refButton6"), "click", function(){
if(array.some(arrIndxSome, function(item){ return item >= 1000000; })){
result = 'yes, there are';
}else{
result = 'no, there are no such items';
} domConst.place(
"<p>The answer is: " + result + "</p>",
"result6",
"after"
);
});
});
<div>The content of our test array is <code>[200000, 500000, 350000, 1000000, 75, 3]</code>.</div>
<button id="refButton6" type="button">Are there some items >=1000000 within the array?</button>
<div id="result6"></div>
every()
返回值:true or false 。只有当方法里面,每一项都返回true,那么最终才会返回true。常常被用在if语句中。
require(["dojo/_base/array"], function(array){
array.every(arrayObject, callback, thisObject);
});
示例:检查是否每一项都>3000
require(["dojo/_base/array", "dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
function(array, dom, domConst, on){ var arrIndxEvery = [
{ month: "january", income: 2000 },
{ month: "february", income: 3200 },
{ month: "march", income: 2100 }
]; on(dom.byId("refButton7"), "click", function(){
if(array.every(arrIndxEvery , function(item){ return item.income >= 3000; })){
result = "yes, all income >= 3000";
}else{
result = "no, not all income >= 3000";
}
domConst.place(
"<p>The answer is: " + result + "</p>",
"result7",
"after"
);
});
});
<div>The content of our test array is <code>[{ month: "january", income: 2000 }, { month: "february", income: 3200 }, { month: "march", income: 2100 }]</code>.</div>
<button id="refButton7" type="button">Is the client allowed to get the credit?</button>
<div id="result7"></div>
dojo 官方翻译 dojo/_base/array 版本1.10的更多相关文章
- dojo 官方翻译 dojo/_base/lang 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/_base/lang.html#dojo-base-lang 应用加载声明: require ...
- dojo 官方翻译 dojo/aspect
官网地址:http://dojotoolkit.org/reference-guide/1.10/dojo/aspect.html after() 定义:after(target, methodNam ...
- dojo 官方翻译 dojo/domReady 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/domReady.html#dojo-domready dom加载完成后,执行. requi ...
- dojo 官方翻译 dojo/json 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/json.html#dojo-json require(["dojo/json&q ...
- dojo 官方翻译 dojo/string 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/string.html#dojo-string require(["dojo/st ...
- dojo 官方翻译 dojo/Deferred
延迟,异步调用 官网地址:http://dojotoolkit.org/reference-guide/1.9/dojo/Deferred.html require(["dojo/Defer ...
- DOJO官方API翻译或解读-dojo/store (自定制存储器)
dojo/store 是对已存数据的访问和存储的统一接口,dojo/store意图以一个简单.易于使用和扩展的API来,替代.集合和改善 dojo/data 和dojox/storage .基于HTM ...
- dojo 十 ajax dojo/_base/xhr
官方教程:Ajax with DojoAjax功能:1.从服务器加载静态数据2.从web服务中访问xml或json类型的数据3.将表单(form)数据发送到服务器4.刷新页面内容....Ajax在RI ...
- 现代DOJO(翻译)
http://dojotoolkit.org/documentation/tutorials/1.10/modern_dojo/index.html 你可能已经不用doio一段时间了,或者你一直想保持 ...
随机推荐
- S-阶乘除法
输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*...*n (n>=1). 比如,若 n=6, m=3,则n!/m!=6!/3!=720/6=120. 是不是很简 ...
- vscode配置golang
https://www.cnblogs.com/Leo_wl/p/8242628.html https://www.cnblogs.com/angelyan/p/10400789.html 主要看了这 ...
- TMS320F28335——下载程序到flash中
一.让CCS软件支持Flash烧写 添加F28335.cmd文件 如图屏蔽掉25335_RAM_lnk.cmd 2.支持从Flash中拷贝文件到RAM中 添加DSP2832x_MemCopy.c 在主 ...
- 动态规划(股票交易)---只能进行 k 次的股票交易
只能进行 k 次的股票交易 188. Best Time to Buy and Sell Stock IV (Hard) 题目描述: 只能进行K次股票交易,求能获得的最大利润 思路分析: 和只 ...
- arcgis server10.2自带打印模板路径
找到arcgis server10.2安装目录路径,我的安装路径为C盘,如下: C:\Program Files\ArcGIS\Server\Templates\ExportWebMapTemplat ...
- PAT Basic 1032 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即参赛人数.随后 N 行, ...
- SQL SERVER BCP导入导出
bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.bcp可以将数据库的表或视图直接导出,也能通过SELECT ...
- redux中间件来执行异步操作
在redux中我们都是执行同步操作,如果我们想要执行异步操作,那么我们就需要依赖到中间件,具体的中间件的概念我就不描述了相信官方文档更详尽.现在就描述下具体的用法,就已我们项目中用到的最多的数据请求为 ...
- 合肥学院ACM集训队第一届暑假友谊赛 B FYZ的求婚之旅 D 计算机科学家 F 智慧码 题解
比赛网址:https://ac.nowcoder.com/acm/contest/994#question B FYZ的求婚之旅 思路: 然后用快速幂即可. 细节见代码: #include <i ...
- Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
A B C 给你N(N<=30)种水瓶每种水瓶有无限个 每个的体积是2^(i-1)价格是cost[i] 要求你花最少的钱弄出L体积的水 先从前到后扫一遍cost[i+1]=min(cost[i+ ...