+ 4
JS ... Iām trying to simplify this code, and Iām not having a good time
Please look at the code, itās something I need to explain in the code. The point is, Iām trying to simplify the code so I donāt have to do the same thing over and over again when Iām trying to call a function(x, y, z){...} multiple times. https://code.sololearn.com/WfTCT1sO5U0S/?ref=app
11 Answers
+ 5
Don't use eval. It's slow and unsafe. Just do:
function simplify(id){
return myFunc(x["user"+id].name, x["user"+id].age);
}
// Sinplified call
simplify(1)
simplify(2)
+ 4
I fixed it for you:
https://code.sololearn.com/WWeIzChqi4nJ/?ref=app
using the eval() function
The eval function is really useful because you can ārunā strings if they contain JS code
+ 4
Ginfio My code works. I saved it on CodePlayground:
https://code.sololearn.com/Wzq1EEz4pJCp/?ref=app
Notice that "blablabla" is a string while blablabla is a name (undefined)
+ 4
Ginfio I see the problem. It requires only subtle changes.
First, the simplify() function below:
function simplify(userID){
return myFunc(x.userID.name, x.userId.age);
}
... completely ignores the input arg named userID. Instead, it tries to access the global object named x, using a property "x.userID" which is not defined. This is different from "x.user1" and "x.user2", which are defined.
The two args passed into myFunc() should be changed as follows:
Change:
{x.userID.name} to {userID.name}
{x.userId.age} to {userID.age}
NOTE: The "ID" in "userID" must match the casing in the parameter name. So... "userId" will be undefined.
Corrected Version:
----
function simplify(userID){
return myFunc(userID.name, userID.age);
}
----
Next, change the lines below from:
simplify(user1)
simplify(user2)
to:
simplify(x.user1)
simplify(x.user2)
Otherwise, user1 and user2 are undefined.
x.user1 and x.user2 are defined in the object called x. š
https://code.sololearn.com/W69cR7rglctX/
+ 3
Ginfio I'm still confused. Can you provide a sample input and expected output?
This may be what you want:
function simplify (userID) {
return myFunc(x[userID].name, x[userID].age)
}
simplify("userone")
simplify ("usertwo")
+ 3
What do you mean by slow and unsafe?
+ 3
Kevin ā
Sample code:
https://code.sololearn.com/W4AOq9gu244R/?ref=app
I tried your code, and it didn't seem to work.
+ 2
ok i see now/:
+ 1
Kevin ā
Use the search bar
Forgot the number. thatās not really what iām worried about.
So itās not confusing, letās change the var to
userone
usertwo
userthree..
how would we do it if it wasnāt like
user1, user2...
??
+ 1
My simplified answer š
Hope it is simplified
https://code.sololearn.com/WwnkgqhbJBgA/?ref=app