两个代码块单独工作,而不是一起工作,我在哪里出错了
Two chunks of code work separately but not together, where do i err?
为什么下面的代码可以正常工作呢?
var howMany = prompt("How many numbers?");
var myArray = [];
for(var i = 0; i < howMany; i++){
myArray.push(prompt("Enter a number"));
}
alert(myArray);
上面的代码旨在询问用户要在数组中放入多少个数字,并显示该数组。
下面的代码块看起来也很好。有一个提供的数组。然后代码检查这些数字是否真的是数字。然后把所有的数字加在一起。
var myArray = [1,2,3,4,5];
isDataUniform(myArray);
function isDataUniform(array) {
var first = array[0];
var length = array.length;
for (i=0; i<length; i++){
if(typeof array[i]!== typeof first){
return false;
}
}
return true;
}
if (isDataUniform(myArray) === true){
add(myArray);
} else {
console.log("cant do adding");
}
function add(array) {
var f = 0;
var length = array.length;
for (i=0; i<length; i++){
f+= array[i];
}
alert("The result of addition of this set: " + myArray + " is: " + f);
}
但是当我把两者结合起来时,它不起作用。它不加数字。
var howMany = prompt("How many numbers?");
var myArray = [];
for (var i = 0; i < howMany; i++) {
myArray.push(prompt("Enter a number"));
}
isDataUniform(myArray);
function isDataUniform(array) {
var first = array[0];
var length = array.length;
for (i = 0; i < length; i++) {
if (typeof array[i] !== typeof first) {
return false;
}
}
return true;
}
if (isDataUniform(myArray) === true) {
add(myArray);
} else {
console.log("can't do adding");
}
function add(array) {
var f = 0;
var length = array.length;
for (i = 0; i < length; i++) {
f += array[i];
}
alert("Result of addition of this set: " + myArray + " is: " + f);
}
你能这么好心地纠正我吗?
prompt
的返回值是字符串,而不是数字。
var n = prompt("Enter a number");
alert("typeof(n) = " + typeof(n));
即使输入一个数值,上面的代码也会显示"typeof(n) = string"。
必须将字符串转换为数字。
var howMany = prompt("How many numbers?");
var myArray = [];
for (var i = 0; i < howMany; i++) {
myArray.push(parseInt(prompt("Enter a number"), 10));
}
提示函数保存字符串,所以这里的问题是您正在尝试对字符串进行求和。只要在add函数中添加一个类型转换,脚本就会正常工作:
function add(array) {
var f = 0;
var length = array.length;
for (i = 0; i < length; i++) {
f += parseInt(array[i]);
}
}
var howMany = prompt("How many numbers?"),
myArray = [];
for (var i = 0; i < howMany; i++) {
myArray.push(parseInt(prompt("Enter a number"),10));
}
function isDataUniform(array) {
for (i = 0; i < array.length; i++) {
if (typeof array[i] !== "number") {
return false;
}
}
return true;
}
function add(array) {
var f = 0;
var length = array.length;
for (i = 0; i < length; i++) {
f += array[i];
}
alert("Result of addition of this set: " + myArray + " is: " + f);
}
if (isDataUniform(myArray) === true) {
add(myArray);
} else {
console.log("can't do adding");
}
相关文章:
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- document.title函数可以't设置它与php一起工作
- :focus:一起活跃,不在firefox上工作
- Javascript无法与Onsen一起在Cordova工作
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 有没有办法把它们串在一起,这样它们基本上可以同时工作
- 非常简单的js测试;Don’不要和Minko一起工作
- 无法使我的文本参数与我的查询一起工作
- 为什么Angularjs验证don't与输入[type=“number”]一起工作
- 无法使vash 0.8.0与express 4.12.3一起工作
- 如何使Angular JS控制器与指令一起工作
- 无法使autocompletion与bootstrap和php代码点火器一起工作
- 注入的元素和jQuery脚本.如何让他们一起工作
- 安全地包装JS文件,这样当它们连接在一起时,它们仍然可以工作
- 两个独立工作的javascript函数,但不能一起工作
- 角度和砖石一起工作
- Node http-proxy-middleware 不能与本地服务器一起工作
- 我需要在单击时运行两个函数.即使嵌套在一起,我也无法让它们都工作
- jQuery脚本不想一起工作
- page.js使examples/hash与hashbang:true一起工作