Array destructuring with a ternary operator
I am trying to concat (with uniques values) two arrays and if the second array sometimes is a string.
Maybe it have a bug, but these are my three tryings:
let a = 'abcdefg'
// First try
[...new Set([..., ...(typeof(a) == 'string'? [a]: a))]
// Second try
[...new Set([..., [(typeof(a) == 'string'? ...[a]: ...a)]]
// Third try
[...new Set([..., (typeof(a) == 'string'? ...[a]: ...a)]
javascript arrays ecmascript-6 destructuring
add a comment |
I am trying to concat (with uniques values) two arrays and if the second array sometimes is a string.
Maybe it have a bug, but these are my three tryings:
let a = 'abcdefg'
// First try
[...new Set([..., ...(typeof(a) == 'string'? [a]: a))]
// Second try
[...new Set([..., [(typeof(a) == 'string'? ...[a]: ...a)]]
// Third try
[...new Set([..., (typeof(a) == 'string'? ...[a]: ...a)]
javascript arrays ecmascript-6 destructuring
1
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
1
...
makes no sense at all.
– Bergi
Nov 26 '18 at 12:22
add a comment |
I am trying to concat (with uniques values) two arrays and if the second array sometimes is a string.
Maybe it have a bug, but these are my three tryings:
let a = 'abcdefg'
// First try
[...new Set([..., ...(typeof(a) == 'string'? [a]: a))]
// Second try
[...new Set([..., [(typeof(a) == 'string'? ...[a]: ...a)]]
// Third try
[...new Set([..., (typeof(a) == 'string'? ...[a]: ...a)]
javascript arrays ecmascript-6 destructuring
I am trying to concat (with uniques values) two arrays and if the second array sometimes is a string.
Maybe it have a bug, but these are my three tryings:
let a = 'abcdefg'
// First try
[...new Set([..., ...(typeof(a) == 'string'? [a]: a))]
// Second try
[...new Set([..., [(typeof(a) == 'string'? ...[a]: ...a)]]
// Third try
[...new Set([..., (typeof(a) == 'string'? ...[a]: ...a)]
javascript arrays ecmascript-6 destructuring
javascript arrays ecmascript-6 destructuring
asked Nov 26 '18 at 12:00
tres.14159tres.14159
1701618
1701618
1
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
1
...
makes no sense at all.
– Bergi
Nov 26 '18 at 12:22
add a comment |
1
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
1
...
makes no sense at all.
– Bergi
Nov 26 '18 at 12:22
1
1
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
1
1
...
makes no sense at all.– Bergi
Nov 26 '18 at 12:22
...
makes no sense at all.– Bergi
Nov 26 '18 at 12:22
add a comment |
3 Answers
3
active
oldest
votes
Instead of
[...new Set([..., ...(typeof a === 'string' ? [a] : a))]
take, watch the round, square, round and squere closing brackets at the end.
[...new Set([..., ...(typeof a === 'string' ? [a] : a)])]
// ^
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
add a comment |
Instead of using spread, you can use Array.concat()
, because it treats combine arrays and values in the same way:
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
add a comment |
If I understand correctly, if the a
parameter is a string, and not a collection, searching unique values and the need for a Set is moot. Then you could short circuit as typeof a === 'string' ? [a] : [...new Set(a)]
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
add a comment |
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%2f53480678%2farray-destructuring-with-a-ternary-operator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Instead of
[...new Set([..., ...(typeof a === 'string' ? [a] : a))]
take, watch the round, square, round and squere closing brackets at the end.
[...new Set([..., ...(typeof a === 'string' ? [a] : a)])]
// ^
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
add a comment |
Instead of
[...new Set([..., ...(typeof a === 'string' ? [a] : a))]
take, watch the round, square, round and squere closing brackets at the end.
[...new Set([..., ...(typeof a === 'string' ? [a] : a)])]
// ^
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
add a comment |
Instead of
[...new Set([..., ...(typeof a === 'string' ? [a] : a))]
take, watch the round, square, round and squere closing brackets at the end.
[...new Set([..., ...(typeof a === 'string' ? [a] : a)])]
// ^
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
Instead of
[...new Set([..., ...(typeof a === 'string' ? [a] : a))]
take, watch the round, square, round and squere closing brackets at the end.
[...new Set([..., ...(typeof a === 'string' ? [a] : a)])]
// ^
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
let a = 'abcdefg'
console.log([...new Set([..., ...(typeof a === 'string' ? [a] : a)])]);
edited Nov 26 '18 at 12:24
Bergi
380k63581914
380k63581914
answered Nov 26 '18 at 12:08
Nina ScholzNina Scholz
195k15107178
195k15107178
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
add a comment |
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
Thanks, my code had a bug. Sorry.
– tres.14159
Nov 26 '18 at 13:46
add a comment |
Instead of using spread, you can use Array.concat()
, because it treats combine arrays and values in the same way:
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
add a comment |
Instead of using spread, you can use Array.concat()
, because it treats combine arrays and values in the same way:
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
add a comment |
Instead of using spread, you can use Array.concat()
, because it treats combine arrays and values in the same way:
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
Instead of using spread, you can use Array.concat()
, because it treats combine arrays and values in the same way:
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
const a = 'abcdefg'
console.log([...new Set(.concat(, a))])
console.log([...new Set(.concat(, [a]))])
answered Nov 26 '18 at 12:22
Ori DroriOri Drori
81.4k138997
81.4k138997
add a comment |
add a comment |
If I understand correctly, if the a
parameter is a string, and not a collection, searching unique values and the need for a Set is moot. Then you could short circuit as typeof a === 'string' ? [a] : [...new Set(a)]
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
add a comment |
If I understand correctly, if the a
parameter is a string, and not a collection, searching unique values and the need for a Set is moot. Then you could short circuit as typeof a === 'string' ? [a] : [...new Set(a)]
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
add a comment |
If I understand correctly, if the a
parameter is a string, and not a collection, searching unique values and the need for a Set is moot. Then you could short circuit as typeof a === 'string' ? [a] : [...new Set(a)]
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
If I understand correctly, if the a
parameter is a string, and not a collection, searching unique values and the need for a Set is moot. Then you could short circuit as typeof a === 'string' ? [a] : [...new Set(a)]
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
let a = 'abcdefg'
const createArr = a => typeof a === 'string' ? [a] : [...new Set(a)];
console.log(createArr(a));
console.log(createArr([a,a,'aa']));
answered Nov 26 '18 at 13:10
Me.NameMe.Name
10.2k22039
10.2k22039
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
add a comment |
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
For the record, I like the solution by @OriDrori better ;)
– Me.Name
Nov 26 '18 at 13:21
add a comment |
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%2f53480678%2farray-destructuring-with-a-ternary-operator%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
please add the wanted result as well - and some use cases with their result.
– Nina Scholz
Nov 26 '18 at 12:01
1
...
makes no sense at all.– Bergi
Nov 26 '18 at 12:22