我的应用程序是让用户提供一组数字。用户确定他们将提供多少个数字,然后我相应地提示他们。我想使用函数创建提供的输入数字的数组。然后我想使用另一个函数来计算每个数字的立方体,并将它们放在一个新的数组中。我发现很难创建多维数据集数组。任何人都可以帮我这个吗?
var BR = "<br />";
var ES = " ";
/********* FUNCTIONS *********/
// Enter any functions in this region
function fncube(c) {
var result = 1;
var tro;
for (var j = 0; j < c.length; j++) {
result = c[j] * c[j] * c[j];
tro = new Array(result);
}
return tro;
}
function displayarray(d) {
var mm = new Array();
for (var m = 1; m < d.length; m++) {
mm = mm.push[m];
}
return mm;
}
/********* MAIN *********/
function main() {
var userinput = new Array();
//var m = new Array();
var usersize;
var tilavg;
usersize = parseInt(window.prompt("Enter number of cubes you would like to make: "));
for (var i = 0; i < usersize; i++) {
userinput[i] = parseInt(window.prompt("Enter your number #: " + (i + 1)));
document.writeln(BR + "Number you entered " + " for making cube is : " + userinput[i] + ES)
document.writeln(BR + "The cube is " + fncube(userinput) + ES);
var cc = fncube(userinput);
xx = new Array(cc);
//var z = displayarray(cc);
}
document.writeln(BR + "The array of input values is: " + cc);
document.writeln(BR + "The array of cubes is: " + xx);
}
main();
答案 0 :(得分:0)
JavaScript Array map
方法本身支持将数组转换为另一个相同大小的数组,其中每个元素的转换函数相同。如果将转换函数定义为Cubing操作(在JS中Math.pow(x, 3)
),那么您可以轻松地从一个数组转换为另一个数组。
考虑以下示例。我使用jQuery的map
版本将input
元素转换为它们的值数组,然后使用JS map
方法将该数组转换为包含多维数据集的数组所有的价值观。试试看。一旦了解了map
的工作原理,您就应该能够调整它以适合您的用例。
$(function() {
$("input").change(function() {
var nums = $("input").map(function() {
return this.value || undefined;
}).get();
$("#nums").text(nums);
$("#cubes").text(nums.map(function(i) {
return Math.pow(i, 3);
}));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h4>Enter four numbers</h4>
<input /><br />
<input /><br />
<input /><br />
<input />
<div id="nums"></div>
<div id="cubes"></div>
&#13;