Compares 2 ios and android versions Announcing the arrival of Valued Associate #679: Cesar...
How widely used is the term Treppenwitz? Is it something that most Germans know?
Why was the term "discrete" used in discrete logarithm?
What to do with chalk when deepwater soloing?
Identifying polygons that intersect with another layer using QGIS?
How to Merge Multiple Columns in to Two Columns based on Column 1 Value?
What LEGO pieces have "real-world" functionality?
Dating a Former Employee
Seeking colloquialism for “just because”
In predicate logic, does existential quantification (∃) include universal quantification (∀), i.e. can 'some' imply 'all'?
What is the logic behind the Maharil's explanation of why we don't say שעשה ניסים on Pesach?
What does an IRS interview request entail when called in to verify expenses for a sole proprietor small business?
What is Arya's weapon design?
What causes the vertical darker bands in my photo?
How to bypass password on Windows XP account?
What does this icon in iOS Stardew Valley mean?
What does "fit" mean in this sentence?
Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?
What is the role of the transistor and diode in a soft start circuit?
2001: A Space Odyssey's use of the song "Daisy Bell" (Bicycle Built for Two); life imitates art or vice-versa?
English words in a non-english sci-fi novel
Should I use a zero-interest credit card for a large one-time purchase?
Check which numbers satisfy the condition [A*B*C = A! + B! + C!]
List of Python versions
How to align text above triangle figure
Compares 2 ios and android versions
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
$begingroup$
Please review and let me know which version is better?
Just trying to find any caveats or better ways to accomplish the a version comparison independent from android and ios.
Formats accepted: '1.0.0' or '1' formats and an operator, e.g: compareVersion('1', '1.2.0', '>')
export function compareVersion(version1, version2, operator) {
const formattedV1 = version1.split(".");
const formattedV2 = version2.split(".");
let diff = 0;
if (formattedV1.length !== formattedV2.length) {
const lengthDiff = formattedV1.length - formattedV2.length;
for (let index = 0; index < Math.abs(lengthDiff); index += 1) {
if (lengthDiff > 0) {
formattedV2.push("0");
} else {
formattedV1.push("0");
}
}
}
for (let index = 0; index < formattedV1.length; index += 1) {
if (diff === 0) {
const v1 = parseInt(formattedV1[index]);
const v2 = parseInt(formattedV2[index]);
if (isNaN(v1) || isNaN(v2)) {
throw new Error("Problem comparing versions: not a valid number");
}
if (v1 < v2) {
diff = -1;
}
if (v1 > v2) {
diff = 1;
}
}
}
switch (operator) {
case "=":
case "==":
return diff === 0;
case ">=":
return diff >= 0;
case "<=":
return diff <= 0;
case ">":
return diff > 0;
case "<":
return diff < 0;
default:
throw new Error("Problem comparing versions");
}
}
OR
export function compareVersions(a, b, operator) {
const aParts = a.split('.');
const bParts = b.split('.');
const pairs = [];
for (let index = 0; index < Math.max(aParts.length, bParts.length); index += 1) {
pairs.push({
a: parseInt(aParts[index]),
b: parseInt(bParts[index]),
});
}
let diff = 0;
pairs.forEach((pair) => {
if (diff === 0) {
if (pair.a > pair.b) {
diff = 1;
}
if (pair.b > pair.a) {
diff = -1;
}
if (!isNaN(pair.a) && isNaN(pair.b)) {
diff = 1;
}
if (isNaN(pair.a) && !isNaN(pair.b)) {
diff = -1;
}
}
});
switch (operator) {
case '=':
case '==':
return diff === 0;
case '>=':
return diff >= 0;
case '<=':
return diff <= 0;
case '>':
return diff > 0;
case '<':
return diff < 0;
default:
throw new Error('Problem comparing versions');
}
}
javascript beginner react-native
New contributor
$endgroup$
add a comment |
$begingroup$
Please review and let me know which version is better?
Just trying to find any caveats or better ways to accomplish the a version comparison independent from android and ios.
Formats accepted: '1.0.0' or '1' formats and an operator, e.g: compareVersion('1', '1.2.0', '>')
export function compareVersion(version1, version2, operator) {
const formattedV1 = version1.split(".");
const formattedV2 = version2.split(".");
let diff = 0;
if (formattedV1.length !== formattedV2.length) {
const lengthDiff = formattedV1.length - formattedV2.length;
for (let index = 0; index < Math.abs(lengthDiff); index += 1) {
if (lengthDiff > 0) {
formattedV2.push("0");
} else {
formattedV1.push("0");
}
}
}
for (let index = 0; index < formattedV1.length; index += 1) {
if (diff === 0) {
const v1 = parseInt(formattedV1[index]);
const v2 = parseInt(formattedV2[index]);
if (isNaN(v1) || isNaN(v2)) {
throw new Error("Problem comparing versions: not a valid number");
}
if (v1 < v2) {
diff = -1;
}
if (v1 > v2) {
diff = 1;
}
}
}
switch (operator) {
case "=":
case "==":
return diff === 0;
case ">=":
return diff >= 0;
case "<=":
return diff <= 0;
case ">":
return diff > 0;
case "<":
return diff < 0;
default:
throw new Error("Problem comparing versions");
}
}
OR
export function compareVersions(a, b, operator) {
const aParts = a.split('.');
const bParts = b.split('.');
const pairs = [];
for (let index = 0; index < Math.max(aParts.length, bParts.length); index += 1) {
pairs.push({
a: parseInt(aParts[index]),
b: parseInt(bParts[index]),
});
}
let diff = 0;
pairs.forEach((pair) => {
if (diff === 0) {
if (pair.a > pair.b) {
diff = 1;
}
if (pair.b > pair.a) {
diff = -1;
}
if (!isNaN(pair.a) && isNaN(pair.b)) {
diff = 1;
}
if (isNaN(pair.a) && !isNaN(pair.b)) {
diff = -1;
}
}
});
switch (operator) {
case '=':
case '==':
return diff === 0;
case '>=':
return diff >= 0;
case '<=':
return diff <= 0;
case '>':
return diff > 0;
case '<':
return diff < 0;
default:
throw new Error('Problem comparing versions');
}
}
javascript beginner react-native
New contributor
$endgroup$
add a comment |
$begingroup$
Please review and let me know which version is better?
Just trying to find any caveats or better ways to accomplish the a version comparison independent from android and ios.
Formats accepted: '1.0.0' or '1' formats and an operator, e.g: compareVersion('1', '1.2.0', '>')
export function compareVersion(version1, version2, operator) {
const formattedV1 = version1.split(".");
const formattedV2 = version2.split(".");
let diff = 0;
if (formattedV1.length !== formattedV2.length) {
const lengthDiff = formattedV1.length - formattedV2.length;
for (let index = 0; index < Math.abs(lengthDiff); index += 1) {
if (lengthDiff > 0) {
formattedV2.push("0");
} else {
formattedV1.push("0");
}
}
}
for (let index = 0; index < formattedV1.length; index += 1) {
if (diff === 0) {
const v1 = parseInt(formattedV1[index]);
const v2 = parseInt(formattedV2[index]);
if (isNaN(v1) || isNaN(v2)) {
throw new Error("Problem comparing versions: not a valid number");
}
if (v1 < v2) {
diff = -1;
}
if (v1 > v2) {
diff = 1;
}
}
}
switch (operator) {
case "=":
case "==":
return diff === 0;
case ">=":
return diff >= 0;
case "<=":
return diff <= 0;
case ">":
return diff > 0;
case "<":
return diff < 0;
default:
throw new Error("Problem comparing versions");
}
}
OR
export function compareVersions(a, b, operator) {
const aParts = a.split('.');
const bParts = b.split('.');
const pairs = [];
for (let index = 0; index < Math.max(aParts.length, bParts.length); index += 1) {
pairs.push({
a: parseInt(aParts[index]),
b: parseInt(bParts[index]),
});
}
let diff = 0;
pairs.forEach((pair) => {
if (diff === 0) {
if (pair.a > pair.b) {
diff = 1;
}
if (pair.b > pair.a) {
diff = -1;
}
if (!isNaN(pair.a) && isNaN(pair.b)) {
diff = 1;
}
if (isNaN(pair.a) && !isNaN(pair.b)) {
diff = -1;
}
}
});
switch (operator) {
case '=':
case '==':
return diff === 0;
case '>=':
return diff >= 0;
case '<=':
return diff <= 0;
case '>':
return diff > 0;
case '<':
return diff < 0;
default:
throw new Error('Problem comparing versions');
}
}
javascript beginner react-native
New contributor
$endgroup$
Please review and let me know which version is better?
Just trying to find any caveats or better ways to accomplish the a version comparison independent from android and ios.
Formats accepted: '1.0.0' or '1' formats and an operator, e.g: compareVersion('1', '1.2.0', '>')
export function compareVersion(version1, version2, operator) {
const formattedV1 = version1.split(".");
const formattedV2 = version2.split(".");
let diff = 0;
if (formattedV1.length !== formattedV2.length) {
const lengthDiff = formattedV1.length - formattedV2.length;
for (let index = 0; index < Math.abs(lengthDiff); index += 1) {
if (lengthDiff > 0) {
formattedV2.push("0");
} else {
formattedV1.push("0");
}
}
}
for (let index = 0; index < formattedV1.length; index += 1) {
if (diff === 0) {
const v1 = parseInt(formattedV1[index]);
const v2 = parseInt(formattedV2[index]);
if (isNaN(v1) || isNaN(v2)) {
throw new Error("Problem comparing versions: not a valid number");
}
if (v1 < v2) {
diff = -1;
}
if (v1 > v2) {
diff = 1;
}
}
}
switch (operator) {
case "=":
case "==":
return diff === 0;
case ">=":
return diff >= 0;
case "<=":
return diff <= 0;
case ">":
return diff > 0;
case "<":
return diff < 0;
default:
throw new Error("Problem comparing versions");
}
}
OR
export function compareVersions(a, b, operator) {
const aParts = a.split('.');
const bParts = b.split('.');
const pairs = [];
for (let index = 0; index < Math.max(aParts.length, bParts.length); index += 1) {
pairs.push({
a: parseInt(aParts[index]),
b: parseInt(bParts[index]),
});
}
let diff = 0;
pairs.forEach((pair) => {
if (diff === 0) {
if (pair.a > pair.b) {
diff = 1;
}
if (pair.b > pair.a) {
diff = -1;
}
if (!isNaN(pair.a) && isNaN(pair.b)) {
diff = 1;
}
if (isNaN(pair.a) && !isNaN(pair.b)) {
diff = -1;
}
}
});
switch (operator) {
case '=':
case '==':
return diff === 0;
case '>=':
return diff >= 0;
case '<=':
return diff <= 0;
case '>':
return diff > 0;
case '<':
return diff < 0;
default:
throw new Error('Problem comparing versions');
}
}
javascript beginner react-native
javascript beginner react-native
New contributor
New contributor
New contributor
asked 3 mins ago
VincentVincent
1
1
New contributor
New contributor
add a comment |
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: "196"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
Vincent is a new contributor. Be nice, and check out our Code of Conduct.
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%2fcodereview.stackexchange.com%2fquestions%2f217593%2fcompares-2-ios-and-android-versions%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
Vincent is a new contributor. Be nice, and check out our Code of Conduct.
Vincent is a new contributor. Be nice, and check out our Code of Conduct.
Vincent is a new contributor. Be nice, and check out our Code of Conduct.
Vincent is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fcodereview.stackexchange.com%2fquestions%2f217593%2fcompares-2-ios-and-android-versions%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