Javascript - 数组参数变为连接

时间:2017-06-20 00:07:26

标签: javascript arrays node.js

我是Javascript的新手,我试图将一个字符串数组作为参数传递给同步函数。在函数内部,数组合并为一个字符串,我不知道为什么。输入的结构使我无法改变它。

module.exports = {
    myFunc: function (input) {
        console.log(input); //"string1string2,string3"

        var type = input[0];
        var val = input[1][0];
        console.log('type: ' + type +  ', val: ' + val) 
    }
}


myFunc(["string1", ["string2", "string3"]]); //'type: s, val: t' 

参数input与所有三个字符串连接,变为string1string2,string3并打印出'type: s, val: t'

2 个答案:

答案 0 :(得分:0)

你的javascript似乎工作正常,你可以在这里看到:



var myFunc = function (input) {
    var type = input[0];
    var val = input[1][0];
    console.log('type: ' + type +  ', val: ' + val) 
}

myFunc(["string1", ["string2", "string3"]]); //'type: s, val: t' 




我必须删除模块,以便我可以在代码段中运行它

答案 1 :(得分:0)

您提供的代码示例并未提供您声明的输出。

但是,我怀疑你可能会有这样的事情:



const myFunc = function (input) {
  var type = input[0];
  var val = input[1][0];
  console.log('type: ' + type +  ', val: ' + val) 
}


myFunc("string1", ["string2", "string3"]); //'type: s, val: t' 




注意,我从你的例子中删除了外部数组。如果您只调用myFunc("string1"),则会获得您声称要获得的输出。

我怀疑你缺少你的功能期望的一个级别的数组。

发生了什么,而不是以字符串而不是数组的形式进行访问。



const str = 'abcdef';
console.log(str[0]);
console.log(str[1]);
console.log(str[1][0]);
console.log(str[1][1]);
console.log(str[1][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]);




注意如何使用类似数组的语法访问字符串的单个字符。但是,与其他语言不同,在JavaScript中,字符串的单个字符仍然是一个字符串,因此您实际上可以无限次地调用[0]并仍然可以恢复该字符。