Javascript 使用Array.sort从HTML元素排序数组
我正在尝试为期末考试创建一个单词和数字排序程序,但我无法使array.sort与HTML元素一起工作Javascript 使用Array.sort从HTML元素排序数组,javascript,html,arrays,Javascript,Html,Arrays,我正在尝试为期末考试创建一个单词和数字排序程序,但我无法使array.sort与HTML元素一起工作 <textarea name="data" placeholder="Input data here:" class="inputBox" id="dataInput"></textarea> // sorting words //moving HTML input into array f
<textarea name="data" placeholder="Input data here:" class="inputBox" id="dataInput"></textarea>
// sorting words
//moving HTML input into array
function addDataWords() {
//clear dataOutput
let dataWords = [];
document.getElementById('dataOutput').innerHTML = '';
//push into array
dataWords.push(document.getElementById('dataInput').value.split(','));
console.log(dataWords);
//sort words
dataWords.sort();
console.log(dataWords);
document.getElementById('dataOutput').innerHTML = dataWords;
}
//分类词
//将HTML输入移动到数组中
函数addDataWords(){
//清除数据输出
设dataWords=[];
document.getElementById('dataOutput')。innerHTML='';
//推入阵列
push(document.getElementById('dataInput').value.split(',');
console.log(数据字);
//分类词
dataWords.sort();
console.log(数据字);
document.getElementById('dataOutput')。innerHTML=dataWords;
}
调试器显示HTML元素正在移动到数组中,但是.sort似乎不会对它们进行排序。问题是split()
返回数组。然后将该数组作为子数组推送到空的dataWords
数组中。所以它看起来像:
但是你想要['word1','word2'…]
只要做:
let dataWords = document.getElementById('dataInput').value.split(',');
函数addDataWords(){
//将逗号分隔的值拆分为数组
让dataWords=document.getElementById('dataInput').value.split(',');
//分类词
dataWords.sort();
console.log(数据字);
document.getElementById('dataOutput')。innerHTML=dataWords.join(',');
}
addDataWords()
foo,bar,2,1
JavaScript函数.split()
返回一个新数组。
因此,函数的输出类似于:
[['B', 'C', 'B']] // Example
因此,在这种情况下,简单的解决方案是对嵌套数组进行排序
dataWords[0].sort();
或者更好的方法是:
function addDataWords() {
const dataWords = [];
document.getElementById('dataOutput').innerHTML = '';
const dataInput = document.getElementById('dataInput').value.split(','));
for (let data of dataInput) {
dataWords.push(data);
}
console.log(dataWords);
document.getElementById('dataOutput').innerHTML = dataWords;
}
“返回一个新数组”。。再说一次,不,不是的,是的!如果不是,那么dataWords[]数组中的数组是什么?不是sort(),而是split()ok。。是的,这很有意义,这不是比较Javascript中数组的正确方法