gpt4 book ai didi

javascript - 将数组元素传递给 bob.js formatString 函数

转载 作者:行者123 更新时间:2023-12-03 07:10:11 25 4
gpt4 key购买 nike

我想将数组元素传递给 bob bob.string.formatString 格式字符串,以便我可以传递任意数量的参数,并且它将自动填充占位符中所需的参数。这是我尝试过的。

var string = "Hi {0} and {1}."; 
var x = "Hello";
var y = "world";
var result = test(string ,[x,y] )

function test(string ,args){
//return bob.string.formatString(string, args[0] , args[1]); -> This gives me correct output
str = bob.string.formatString.apply(string , args);
console.log("final string:" + str); // --> This gives me only Hello

我想要“Hi Hello and world”作为输出。

最佳答案

apply 的第一个参数是 thisArg。它为该函数调用提供 this 的值。而不是:

str = bob.string.formatString.apply(string , args);

你应该用以下方式调用它:

str = bob.string.formatString.apply(null, [string].concat(args));
// or
str = bob.string.formatString.apply(bob.string, [string].concat(args));

您还可以将函数定义为:

function test(string) {
var args = [].slice.call(arguments, 1);
str = bob.string.formatString.apply(null, [string].concat(args));
console.log("final string:" + str);
}

这也需要 1 到 N 个参数并将它们传递给 formatString。在ES6中你可以使用官方的rest参数:

function test(string, ...args) {
str = bob.string.formatString(string, ...args);
console.log("final string:" + str);
}

关于javascript - 将数组元素传递给 bob.js formatString 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com