继承我的代码:
function funky1() {
var arr = [];
var inp1 = $('#firstname').val();
var inp2 = $('#secondname').val();
var inp3 = $('#age').val();
arr.push(inp1, inp2, inp3);
var arr2 = [];
var i;
var n;
for (i in arr) {
for (n in i) {
arr2.push(n)
}
}
document.getElementById("sorted").innerHTML = arr2.sort();
}
out put是0,0,0
html是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script language="JavaScript" src="marker.js" type="text/javascript"></script>
</head>
<body>
<form>
input1:
<br>
<input type="text" id="firstname">
<br> input2:
<br>
<input type="text" id="secondname">
<br> input3:
<br>
<input type="text" id="age">
</form>
<pre id="sorted">poop</pre>
<button onclick="funky1();">click me</button>
</body>
</html>
我期望输出是按字母顺序排列的字母:a,b,c ect ..
我是JavaScript的新手,所以对我来说很容易。
答案 0 :(得分:2)
我认为您正在寻找的循环是:
for (var i = 0; i < arr.length; i ++) {
for (var j = 0; j < arr[i].length; j++) {
arr2.push(arr[i][j])
}
}
这将获取第一个数组中的所有字符串,并将每个字母放入第二个数组中,这就是您要查找的内容。
你的循环不起作用,因为你使用for in
表达式循环数组和字符串字母,这对于数组或字符串都不正确。
答案 1 :(得分:0)
我无法看到这样做的原因,但我认为编写此循环的最佳方法是这样的:
function funky1(){
var arr = [],
np1 = $('#firstname').val(),
inp2 = $('#secondname').val(),
inp3 = $('#age').val();
arr.push(inp1,inp2,inp3);
var arr2 = [];
for(i in arr){
arr2.push(arr[i])
}
document.getElementById("sorted").innerHTML = arr2.sort();
}
答案 2 :(得分:0)
您是否尝试使用第一个数组的内容创建第二个数组?如果是这样,您可能不需要嵌套for循环。这是一个可能有帮助的例子。第一个writeln显示项目正被添加到第二个数组。第二个writeln显示已完成的第二个数组,已排序。
var array1 = ["orange","apple","banana"];
var len = array1.length;
var array2 = [];
for(var x=0; x<len; x++) {
array2.push(array1[x]);
document.writeln(array2[x] + "<br>" );
};
document.writeln(array2.sort());
答案 3 :(得分:-1)
首先是第一件事。你应该不真正使用for ... in
,但我会先告诉你如何使用它:
for (let i in arr) { // i here is the key
let val = arr[i];
arr2.push(val);
}
然后,您应该在arr2
变量中获取所有值。
如果您不想使用for ... in
并且您使用的是es6,则可以使用for ... of
for (let val of arr) {
arr2.push(val);
}
另一个选择是使用plain for循环:
for (let i; i < arr.length; ++i) {
let val = arr[i];
arr2.push(val);
}
或者,如果要将一个阵列关闭到另一个阵列,可以执行以下操作:
let arr2 = JSON.parse(JSON.stringify(arr));
只要您现在使用上述选项之一正确构建arr2.sort()
,arr2
就可以正常工作了。