javascript - 创建一个接受多个字符串参数并将它们全部打印在一起的函数

标签 javascript arrays function

我对 JavaScript 很陌生,不太了解函数工作所需的定义。

    var ShowWords = ['Olá,','sabia','que', 'ta', 'tudo', 'bem?']
for(var i=0; i<ShowWords.length; i++){
        console.log(ShowWords[i]);
    }

我不明白为什么上面的代码有效而下面的代码不起作用,它只给了我“未定义”

function ShowWords(pal1,pal2,pal3,pal4,pal5,pal6){
    for(var i=0; i<ShowWords.length; i++){
        return ShowWords[i]
    }
}
console.log(ShowWords['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

有人可以帮忙吗?

最佳答案

您的函数调用语法错误。它需要是function(args),而不是function[args]

这会起作用:

function ShowWords(words){
    for(var i=0; i< words.length; i++){
        return ShowWords[i]
    }
}
console.log(ShowWords('Olá,','sabia','que', 'ta', 'tudo', 'bem?'));

但是您想要做的可能是这样:

function ShowWords(words){
    for(var i=0; i< words.length; i++){
        return ShowWords[i]
    }
}
console.log(ShowWords(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']));

但你确实想这样做:

function ShowWords(words){
    words.forEach(console.log)
}

ShowWords(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

或者这个:

function makeListFromArray(words) {
   return words.join(', ')
}

const list = makeListFromArray(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

console.log(list);

然后你想要处理没有传入任何内容或传入字符串的情况,并且不抛出错误:

function makeListFromArray(words = []) {
   return Array.isArray(words) ? words.join(', ') : words;
}

const list = makeListFromArray(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

console.log(list);

const str = 'Olá'

console.log(makeListFromArray(str)) // prints Olá

然后你就可以像这样做:

const makeListFromArray = (words = []) =>
   Array.isArray(words) ? words.join(', ') : words;

const list = makeListFromArray(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

console.log(list);

这些是实现这一目标的几种方法。不要使用循环,array methods更强大且可组合。

然后,出现了 TypeScript...

const makeListFromArray = (words: string[] = []) => words.join(', ')

const list = makeListFromArray(['Olá,','sabia','que', 'ta', 'tudo', 'bem?']);

console.log(list);

通过 (words: string[] = []) 上的单一类型注释,TypeScript 现在将拒绝构建尝试传递字符串数组(或空数组)以外的任何内容的代码) 到 makeListFromArray

它还知道 list 是一个字符串,因为它知道 Array.join 返回一个字符串。

由于它们都是const,它知道列表的值和类型不能在代码中的任何地方更改,因此它知道list在任何地方都是一个字符串。

关于javascript - 创建一个接受多个字符串参数并将它们全部打印在一起的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353172/

相关文章:

Javascript更改所有span元素的innerHTML

iphone - 在 Swift 的另一个数组中删除数组中的项目

javascript - 未捕获的类型错误 : Cannont set Property 'valueAsDate' of null

javascript - ReactJS:如何在不绑定(bind)的情况下访问事件处理程序中的模型?

c - 将不同数据类型的csv数据保存到C中的数组中

java - 在数组中搜索特定参数 Java

javascript - 格式化javascript函数的正确方法

postgresql - Postgres : ERROR: value too long for type character(4)

javascript - 我如何将此 jQuery 代码转换为 jQuery 函数?

javascript - 避免嵌套三元