dojo.map¶
Status: | Draft |
---|---|
Version: | 1.2 |
Examples¶
This example shows you how to use dojo.map with a simple array. All values of the array will get doubled:
<script type="text/javascript">
dojo.require("dijit.form.Button"); // this is just to make the demo look nicer
var arrValues = [1,2,3,4,5,6,7,8,9,10]
function mapArray(){
var doubleValue = dojo.map(arrValues, function(item){
return item*2;
});
dojo.forEach(doubleValue, function(item){
var li = dojo.doc.createElement("li");
li.innerHTML = item;
dojo.byId("arrValuesAfter-items").appendChild(li);
});
dojo.forEach(arrValues, function(item){
var li = dojo.doc.createElement("li");
li.innerHTML = item;
dojo.byId("arrValues-items").appendChild(li);
});
}
</script>
<button dojoType="dijit.form.Button" onClick="mapArray()">Run dojo.map()</button>
<div style="width: 300px; float: left; margin-top: 10px;">
Values before running dojo.map()
<ul id="arrValues-items">
</ul>
</div>
<div style="width: 300px; float: left; margin-top: 10px;">
Values after running dojo.map()
<ul id="arrValuesAfter-items">
</ul>
</div>
This example shows you how to use dojo.map with objects. In JavaScript, objects are references, so you can not just change a value of a property without modifying the object itself. Luckily Dojo provides you with a method to clone objects: dojo.clone
<script type="text/javascript">
dojo.require("dijit.form.Button"); // this is just to make the demo look nicer
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}];
function raiseSalary(){
var raisedSalaries = dojo.map(arrSalary, function(item){
var newItem = dojo.clone(item);
newItem.salary += (newItem.salary/100)*10;
return newItem;
});
dojo.forEach(raisedSalaries, function(item, i){
var li = dojo.doc.createElement("li");
li.innerHTML = i+1+". "+item.surname+", "+item.name+". New salary: "+item.salary;
dojo.byId("filteredSalary-items").appendChild(li);
});
dojo.forEach(arrSalary, function(item, i){
var li = dojo.doc.createElement("li");
li.innerHTML = i+1+". "+item.surname+", "+item.name+". Old salary: "+item.salary;
dojo.byId("unFilteredSalary-items").appendChild(li);
});
}
</script>
<button dojoType="dijit.form.Button" onClick="raiseSalary()">Raise the salary</button>
<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>