如何对javascript对象的属性执行计算并将其打印出来
How to perform calculations to properties of a javascript object and print it out
我还在学习javascript,这是不是一个家庭作业问题。
我有一个对象集合
var x = [{name:'Ann',age:1,ending:'years old'},
{name:'Bob',age:2,ending:'years old'},
{name:'Cat',age:3,ending:'years old'},
{name:'Dog',age:10,ending:'years old'},
{name:'Fly',age:5,ending:'years old'}]
我想知道如何:
1、对所有 'age'进行计算,如age = age+1
2、把计算过的数据放入对象集合//x.push(age)我猜?
3、打印'x':
console.log(x[name]+' is '+x[age]+''+x[ending]+[calculations to age])
//Ann is 1 years old2
//Bob is 2 years old3....
我知道这个句子没有意义,但没关系。
我的尝试:
var arr = '';
for (var property in x){
arr += x[property]+''t';
}
var newArr = arr.split(''t')
,calculatedData = newArr[1]+1 ;
newArr.push(calculatedData) ;
console.log(newArr[0]+' is '+newArr[1]+''+newArr[2]+calculatedData );
1,对所有'age'执行计算,例如age = age+1
你在这里做的是循环遍历数组。JavaScript中有很多方法可以做到这一点;看到这个答案有一个很长的列表。在现代JavaScript中,forEach
很常见:
x.forEach(function(entry) {
entry.age = entry.age + 1;
// more commonly written like this:
// ++entry.age;
});
注意每个数组项是如何作为第一个参数给回调函数的。
或者是古老的for
循环:
var index;
for (index = 0; index < x.length; ++index) {
x[index].age = x[index].age + 1;
// more commonly:
// ++x[index].age;
}
注意我们如何通过索引查找条目,x[index]
。
2,将计算的数据放入对象集合//x.push(age)我猜?
如果我们更新对象上的age
,它已经在那里了。或者,我们可以用map
:
var newArray = x.map(function(entry) {
return entry.age + 1;
});
现在,newArray
是一个数字数组,每个年龄加1的结果。
但是根据你的问题#3,你更有可能想添加一个新的属性,更新后的年龄:
x.forEach(function(entry) {
entry.updatedAge = entry.age + 1;
});
3、以这种方式打印'x':
这是另一个循环:
x.forEach(function(entry) {
console.log(entry.name + " is " + entry.age + " " + entry.ending + " " + entry.updatedAge);
});
生活例子:
var x = [{name:"Ann",age:1,ending:'years old'},
{name:"Bob",age:2,ending:'years old'},
{name:"Cat",age:3,ending:'years old'},
{name:"Dog",age:10,ending:'years old'},
{name:"Fly",age:5,ending:'years old'}];
x.forEach(function(entry) {
entry.updatedAge = entry.age + 1;
});
x.forEach(function(entry) {
snippet.log(entry.name + " is " + entry.age + " " + entry.ending + " " + entry.updatedAge);
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
当然,你可以在一个循环中完成:
x.forEach(function(entry) {
snippet.log(entry.name + " is " + entry.age + " " + entry.ending + " " + (entry.age + 1));
// Note the () ----------------------------------------------------------^-------------^
});
生活例子:
var x = [{name:"Ann",age:1,ending:'years old'},
{name:"Bob",age:2,ending:'years old'},
{name:"Cat",age:3,ending:'years old'},
{name:"Dog",age:10,ending:'years old'},
{name:"Fly",age:5,ending:'years old'}];
x.forEach(function(entry) {
snippet.log(entry.name + " is " + entry.age + " " + entry.ending + " " + (entry.age + 1));
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
遍历集合并在每次迭代中执行计算:
var x = [{name:"Ann",age:1,ending:'years old'},
{name:"Bob",age:2,ending:'years old'},
{name:"Cat",age:3,ending:'years old'},
{name:"Dog",age:10,ending:'years old'},
{name:"Fly",age:5,ending:'years old'}];
for(var i = 0; i<x.length; i++){
//perform calc on age
x[i].age = x[i].age + 1;
//print info in object
console.log(x[i].name+' is '+x[i].age+' '+x[i].ending);
}
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- 根据元素和容器大小计算边距
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 使用D3.js计算带有字母间距的文本长度
- jQuery/JavaScript在线公文包表单-打印样式表
- 使用CSS或JavaScript计算分页符的数量
- 如何打印嵌套对象的所有值
- 可以't计算自定义谷歌地图的js
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 计算特定日期's将日期更改为另一个日期,并打印它们的差异
- 计算一个输入字段的长度,并使用Gravity Forms和Javascript将其打印到另一个字段中
- 计算每个打印表的行数
- 如何在Highcharts中计算图表打印的数量
- 如何对javascript对象的属性执行计算并将其打印出来
- Javascript——计算每个字符串表达式的频率,并从最大到最小打印出来
- Js打印为文本而不是计算
- javascript控制台何时计算打印对象的内容?