Why does App Script add a decimal to numbers in an array?
A simple function which returns an array:
function getArray(){
return [
123456780,
123456781,
];
}
When checked in Google App Script using indexOf()
fails
if(getArray().indexOf(123456780) > -1){
console.log("Found in Array");
}
I output the array to the console and got this:
[123456780.0,123456781.0]
indexOf()
should works with decimals (see fiddle here).
I worked around this by making the array values a string using .map(String)
and the check value using .toString()
Why does Apps Script behave this way? Am I solving the right problem?
javascript google-apps-script
add a comment |
A simple function which returns an array:
function getArray(){
return [
123456780,
123456781,
];
}
When checked in Google App Script using indexOf()
fails
if(getArray().indexOf(123456780) > -1){
console.log("Found in Array");
}
I output the array to the console and got this:
[123456780.0,123456781.0]
indexOf()
should works with decimals (see fiddle here).
I worked around this by making the array values a string using .map(String)
and the check value using .toString()
Why does Apps Script behave this way? Am I solving the right problem?
javascript google-apps-script
1
I think that when your script is run at the script editor of Google Apps Script,getArray().indexOf(123456780) > -1
becomestrue
. Although I'm not sure whether this is the reason, you useconsole.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, whenconsole.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifyingconsole.log("Found in Array")
toLogger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.
– Tanaike
Nov 16 '18 at 3:21
2
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
@Tanaike The issue is thatgetArray().indexOf(123456780)
should betrue
, but in App Script it isfalse
- it is as if123456780 != 123456780.0
.
– OsulliP
Nov 22 '18 at 6:18
@OsulliP Thank you for replying. In your script,console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.
– Tanaike
Nov 22 '18 at 6:35
add a comment |
A simple function which returns an array:
function getArray(){
return [
123456780,
123456781,
];
}
When checked in Google App Script using indexOf()
fails
if(getArray().indexOf(123456780) > -1){
console.log("Found in Array");
}
I output the array to the console and got this:
[123456780.0,123456781.0]
indexOf()
should works with decimals (see fiddle here).
I worked around this by making the array values a string using .map(String)
and the check value using .toString()
Why does Apps Script behave this way? Am I solving the right problem?
javascript google-apps-script
A simple function which returns an array:
function getArray(){
return [
123456780,
123456781,
];
}
When checked in Google App Script using indexOf()
fails
if(getArray().indexOf(123456780) > -1){
console.log("Found in Array");
}
I output the array to the console and got this:
[123456780.0,123456781.0]
indexOf()
should works with decimals (see fiddle here).
I worked around this by making the array values a string using .map(String)
and the check value using .toString()
Why does Apps Script behave this way? Am I solving the right problem?
javascript google-apps-script
javascript google-apps-script
asked Nov 16 '18 at 2:51
OsulliPOsulliP
253
253
1
I think that when your script is run at the script editor of Google Apps Script,getArray().indexOf(123456780) > -1
becomestrue
. Although I'm not sure whether this is the reason, you useconsole.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, whenconsole.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifyingconsole.log("Found in Array")
toLogger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.
– Tanaike
Nov 16 '18 at 3:21
2
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
@Tanaike The issue is thatgetArray().indexOf(123456780)
should betrue
, but in App Script it isfalse
- it is as if123456780 != 123456780.0
.
– OsulliP
Nov 22 '18 at 6:18
@OsulliP Thank you for replying. In your script,console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.
– Tanaike
Nov 22 '18 at 6:35
add a comment |
1
I think that when your script is run at the script editor of Google Apps Script,getArray().indexOf(123456780) > -1
becomestrue
. Although I'm not sure whether this is the reason, you useconsole.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, whenconsole.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifyingconsole.log("Found in Array")
toLogger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.
– Tanaike
Nov 16 '18 at 3:21
2
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
@Tanaike The issue is thatgetArray().indexOf(123456780)
should betrue
, but in App Script it isfalse
- it is as if123456780 != 123456780.0
.
– OsulliP
Nov 22 '18 at 6:18
@OsulliP Thank you for replying. In your script,console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.
– Tanaike
Nov 22 '18 at 6:35
1
1
I think that when your script is run at the script editor of Google Apps Script,
getArray().indexOf(123456780) > -1
becomes true
. Although I'm not sure whether this is the reason, you use console.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, when console.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifying console.log("Found in Array")
to Logger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.– Tanaike
Nov 16 '18 at 3:21
I think that when your script is run at the script editor of Google Apps Script,
getArray().indexOf(123456780) > -1
becomes true
. Although I'm not sure whether this is the reason, you use console.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, when console.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifying console.log("Found in Array")
to Logger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.– Tanaike
Nov 16 '18 at 3:21
2
2
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
@Tanaike The issue is that
getArray().indexOf(123456780)
should be true
, but in App Script it is false
- it is as if 123456780 != 123456780.0
.– OsulliP
Nov 22 '18 at 6:18
@Tanaike The issue is that
getArray().indexOf(123456780)
should be true
, but in App Script it is false
- it is as if 123456780 != 123456780.0
.– OsulliP
Nov 22 '18 at 6:18
@OsulliP Thank you for replying. In your script,
console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.– Tanaike
Nov 22 '18 at 6:35
@OsulliP Thank you for replying. In your script,
console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.– Tanaike
Nov 22 '18 at 6:35
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53330737%2fwhy-does-app-script-add-a-decimal-to-numbers-in-an-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53330737%2fwhy-does-app-script-add-a-decimal-to-numbers-in-an-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
I think that when your script is run at the script editor of Google Apps Script,
getArray().indexOf(123456780) > -1
becomestrue
. Although I'm not sure whether this is the reason, you useconsole.log("Found in Array")
. Did you check the stackdriver? In Google Apps Script, whenconsole.log()
is used, the result can be seen at the stackdriver. If you want to confirm the result at the log of script editor, how about modifyingconsole.log("Found in Array")
toLogger.log("Found in Array")
? If I misunderstand your situation, I'm sorry.– Tanaike
Nov 16 '18 at 3:21
2
There is no such thing as integer in javascript only number. All numbers are 64 bit floating point.
– TheWizEd
Nov 16 '18 at 14:00
@Tanaike The issue is that
getArray().indexOf(123456780)
should betrue
, but in App Script it isfalse
- it is as if123456780 != 123456780.0
.– OsulliP
Nov 22 '18 at 6:18
@OsulliP Thank you for replying. In your script,
console.log("Found in Array");
is not run. Is my understanding correct? In order to understand correctly your situation, can you provide the complete script that your situation can be replicated? If you can do, please add it to your question. I would like to confirm and study about it.– Tanaike
Nov 22 '18 at 6:35