Javascript Console.log(字符串)doensn';我什么也不退
我在控制台记录字符串时遇到了一个问题,我刚刚从一个数组中拼凑了一个字符串——为什么当我调用“console.log(text2);”时,它不在控制台中打印任何内容 我只能认为这与数组索引不是数字,而是与元素同名这一事实有关——这是因为我是如何创建数组的:Javascript Console.log(字符串)doensn';我什么也不退,javascript,html,arrays,string,Javascript,Html,Arrays,String,我在控制台记录字符串时遇到了一个问题,我刚刚从一个数组中拼凑了一个字符串——为什么当我调用“console.log(text2);”时,它不在控制台中打印任何内容 我只能认为这与数组索引不是数字,而是与元素同名这一事实有关——这是因为我是如何创建数组的:a2[element]=element,但我不知道如何才能做到这一点 下面是Javascript代码--------------------------- const text = document.getElementById('textfi
a2[element]=element代码>,但我不知道如何才能做到这一点
下面是Javascript代码---------------------------
const text = document.getElementById('textfield');
let a2 = new Array();
document.querySelector('form.input-form').addEventListener('submit', function (e) {
e.preventDefault();
console.log(text.value);
const a1 = text.value.split(' ');
console.log(a1);
a1.forEach((element) => {
function shuffle(element) {
var arr = element.split(''); // Convert String to array
arr.sort(function() {
return 0.5 - Math.random();
});
element = arr.join(''); // Convert Array to string
return element; // Return shuffled string
}
element = shuffle(element);
console.log(element);
a2 [element] = element; //creates array a2
});
console.log(a2);
alert(typeof a2); // returns "object"
//I want to create a string out of a2 by joining the words back together with ' '
const text2 = a2.join(' ');
alert(typeof text2); // returns "string"
console.log(text2); //doesn't return anything
//lastly I want to output the text back into the html site
//document.getElementById("output").innerHTML = text2;
});
a2[element]
看起来像是语法错误?这里有很多错误。首先,使用a2=[]
而不是new Array()
(使用原语语法),其次,a2[element]=element
应该做什么?如果a2
是一个数组,则其索引是数字。即使a2
是一个对象原语,它的索引将是字符串,并且a2[element]=element
仍然不起作用:它将执行类型强制,您的元素将在“某处”,但不是您认为它在的地方。因此,元素
不在“数组中”,它“以某种方式存储为对象属性,join()
将是空数组上的一个连接。@Mike'Pomax'Kamerman解释了为什么join
不会将它们包括在输出中<代码>a=[];a、 prop='值';a、 加入(“”)/“”
(而且:永远不要使用alert。继续使用console.log,因为它会准确地显示您告诉它的内容,而alert不会。另外,不要在foreach中声明shuffle
,您不需要每次迭代都重新声明它。另外,如果element
是一个字符串,不要调用它element
)是的,这就是我写的@evolutionxbox?数组是空的,即使你设置了对象属性。