我有三个变量
var r1 = 12;
var r2 = '';
var r3;
我需要使用以下三个参数制作一个函数
convert()
:function convert(arg1, arg2, arg3) {
// function body here
}
这样我运行这段代码后
convert(r1, r2, r3)
console.log(r1, r2, r3)
我应该得到输出:
r2, "empty string", "undefined value"
也就是说,应将r1,r2和r3的值更改为上述值。
我试过的代码:
function convert(arg1, arg2, arg3) {
if (arg2 === '') {
arg2 = "empty string";
}
if (arg3 === undefined) {
arg3 = "undefined value";
}
}
然后调用
convert(r1, r2, r3)
失败(很明显!),因为参数作为值传递。但是我需要知道有什么方法可以实现此功能吗?另外,我已经看过this question,所以我知道它们是如何通过的,但是,仍然有什么方法可以使我工作吗? 最佳答案
您可以执行类似的操作,但是很可能您的逻辑存在某些缺陷。
function convert(arr) {
for (var i = 0, l = arr.length; i < l; i++) {
// do your stuff here on arr[i]
}
return arr;
}
var a = convert([r1, r2, r3]);
//a now holds the right values, do whatever you want with them
//you can even load them back to the variables if that's what you really want
//r1 = a[0]; etc.
我不知道这样做的原因是什么,您想在哪里使用这些新值,但是只为一个值编写convert函数,并在需要时调用它会更聪明。
function convert(val) {
if (val === '') {
return 'empty string';
}
if (typeof val === 'undefined') {
return 'undefined value';
}
return val;
}
console.log(convert(r1));
关于javascript - 如何使这个简单的javascript函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16852148/