JavaScript array of objects contains the same array data The Next CEO of Stack OverflowSimplest code for array intersection in javascriptHow do JavaScript closures work?What is the most efficient way to deep clone an object in JavaScript?How do I remove a property from a JavaScript object?How do I check if an array includes an object in JavaScript?What does “use strict” do in JavaScript, and what is the reasoning behind it?How to check whether a string contains a substring in JavaScript?Loop through an array in JavaScriptHow to check if an object is an array?How do I remove a particular element from an array in JavaScript?For-each over an array in JavaScript?
logical reads on global temp table, but not on session-level temp table
Why does the freezing point matter when picking cooler ice packs?
Free fall ellipse or parabola?
Is it correct to say moon starry nights?
Calculate the Mean mean of two numbers
Read/write a pipe-delimited file line by line with some simple text manipulation
"Eavesdropping" vs "Listen in on"
Is it a bad idea to plug the other end of ESD strap to wall ground?
Does int main() need a declaration on C++?
Is it possible to make a 9x9 table fit within the default margins?
How to find if SQL server backup is encrypted with TDE without restoring the backup
Can this transistor (2N2222) take 6 V on emitter-base? Am I reading the datasheet incorrectly?
Ising model simulation
Arrows in tikz Markov chain diagram overlap
Find the majority element, which appears more than half the time
What is the difference between 서고 and 도서관?
What is a typical Mizrachi Seder like?
Upgrading From a 9 Speed Sora Derailleur?
How can the PCs determine if an item is a phylactery?
Are British MPs missing the point, with these 'Indicative Votes'?
Can I cast Thunderwave and be at the center of its bottom face, but not be affected by it?
What did the word "leisure" mean in late 18th Century usage?
Could a dragon use hot air to help it take off?
A hang glider, sudden unexpected lift to 25,000 feet altitude, what could do this?
JavaScript array of objects contains the same array data
The Next CEO of Stack OverflowSimplest code for array intersection in javascriptHow do JavaScript closures work?What is the most efficient way to deep clone an object in JavaScript?How do I remove a property from a JavaScript object?How do I check if an array includes an object in JavaScript?What does “use strict” do in JavaScript, and what is the reasoning behind it?How to check whether a string contains a substring in JavaScript?Loop through an array in JavaScriptHow to check if an object is an array?How do I remove a particular element from an array in JavaScript?For-each over an array in JavaScript?
I try to get all same data values into an array of objects. This is my input:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
]
I need a result like:
["65d4ze"]
I try to loop on my object to get this output, but I'm completely lost... I don't know how to know if the result is into all data arrays.
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
javascript arrays
|
show 3 more comments
I try to get all same data values into an array of objects. This is my input:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
]
I need a result like:
["65d4ze"]
I try to loop on my object to get this output, but I'm completely lost... I don't know how to know if the result is into all data arrays.
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
javascript arrays
So get all arrays elements that are present on alla
?
– Eddie
Mar 25 at 10:06
3
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12
|
show 3 more comments
I try to get all same data values into an array of objects. This is my input:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
]
I need a result like:
["65d4ze"]
I try to loop on my object to get this output, but I'm completely lost... I don't know how to know if the result is into all data arrays.
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
javascript arrays
I try to get all same data values into an array of objects. This is my input:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
]
I need a result like:
["65d4ze"]
I try to loop on my object to get this output, but I'm completely lost... I don't know how to know if the result is into all data arrays.
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b);
javascript arrays
javascript arrays
edited Mar 25 at 12:05
Peter Mortensen
13.8k1987113
13.8k1987113
asked Mar 25 at 10:04
KamouloxKamoulox
533
533
So get all arrays elements that are present on alla
?
– Eddie
Mar 25 at 10:06
3
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12
|
show 3 more comments
So get all arrays elements that are present on alla
?
– Eddie
Mar 25 at 10:06
3
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12
So get all arrays elements that are present on all
a
?– Eddie
Mar 25 at 10:06
So get all arrays elements that are present on all
a
?– Eddie
Mar 25 at 10:06
3
3
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12
|
show 3 more comments
5 Answers
5
active
oldest
votes
You could map data
and get the common values with Array#map
, Array#reduce
, Array#filter
, Set
and Set#has
.
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
I have some troubles to understand this piece of codeb.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks
– Kamoulox
Mar 25 at 10:16
5
filter
has two parameters, one foir the callback, which is here a prototype function ofSet
,has
which checks a value against a set. at this point, the method does not works because it need an instance ofSet
. the second parameter isthisArg
, where you can hand over an object, which is used asthis
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a boundthis
by using this as callback:Set.prototype.has.bind(new Set(a))
, which is now a function withthis
.
– Nina Scholz
Mar 25 at 10:21
With arraycommon = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,Array#includes
uses a second parameterfromIndex
and gets this value with the index of the callback ...
– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
add a comment |
You can use the Array#filter
method. Filter the first array by checking if a value is present in all other object properties (arrays), using the Array#every
method to check if a value is present in all remaining arrays.
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
add a comment |
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
add a comment |
Use the flat
function in the array:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
Thanks for your answer, that a great code. Butflat
is not working on my browser
– Kamoulox
Mar 25 at 10:21
add a comment |
You could use reduce
and concat
on each data array, and check the count of each item.
In the end, you check whether all objects across the array contain that item and return it if yes.
Note that this function works if you want to extract the item that has the same occurrence across all objects in the array.
If an item has duplicates, but does not fulfill the above condition, it would not be extracted.
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
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%2f55335302%2fjavascript-array-of-objects-contains-the-same-array-data%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
You could map data
and get the common values with Array#map
, Array#reduce
, Array#filter
, Set
and Set#has
.
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
I have some troubles to understand this piece of codeb.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks
– Kamoulox
Mar 25 at 10:16
5
filter
has two parameters, one foir the callback, which is here a prototype function ofSet
,has
which checks a value against a set. at this point, the method does not works because it need an instance ofSet
. the second parameter isthisArg
, where you can hand over an object, which is used asthis
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a boundthis
by using this as callback:Set.prototype.has.bind(new Set(a))
, which is now a function withthis
.
– Nina Scholz
Mar 25 at 10:21
With arraycommon = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,Array#includes
uses a second parameterfromIndex
and gets this value with the index of the callback ...
– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
add a comment |
You could map data
and get the common values with Array#map
, Array#reduce
, Array#filter
, Set
and Set#has
.
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
I have some troubles to understand this piece of codeb.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks
– Kamoulox
Mar 25 at 10:16
5
filter
has two parameters, one foir the callback, which is here a prototype function ofSet
,has
which checks a value against a set. at this point, the method does not works because it need an instance ofSet
. the second parameter isthisArg
, where you can hand over an object, which is used asthis
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a boundthis
by using this as callback:Set.prototype.has.bind(new Set(a))
, which is now a function withthis
.
– Nina Scholz
Mar 25 at 10:21
With arraycommon = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,Array#includes
uses a second parameterfromIndex
and gets this value with the index of the callback ...
– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
add a comment |
You could map data
and get the common values with Array#map
, Array#reduce
, Array#filter
, Set
and Set#has
.
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
You could map data
and get the common values with Array#map
, Array#reduce
, Array#filter
, Set
and Set#has
.
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
var array = [ name: "Foo", id: "123", data: ["65d4ze", "65h8914d"] , name: "Bar", id: "321", data: ["65d4ze", "894ver81"] ],
key = 'data',
common = array
.map(o => o[key])
.reduce((a, b) => b.filter(Set.prototype.has, new Set(a)));
console.log(common);
answered Mar 25 at 10:09
Nina ScholzNina Scholz
195k15107179
195k15107179
I have some troubles to understand this piece of codeb.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks
– Kamoulox
Mar 25 at 10:16
5
filter
has two parameters, one foir the callback, which is here a prototype function ofSet
,has
which checks a value against a set. at this point, the method does not works because it need an instance ofSet
. the second parameter isthisArg
, where you can hand over an object, which is used asthis
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a boundthis
by using this as callback:Set.prototype.has.bind(new Set(a))
, which is now a function withthis
.
– Nina Scholz
Mar 25 at 10:21
With arraycommon = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,Array#includes
uses a second parameterfromIndex
and gets this value with the index of the callback ...
– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
add a comment |
I have some troubles to understand this piece of codeb.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks
– Kamoulox
Mar 25 at 10:16
5
filter
has two parameters, one foir the callback, which is here a prototype function ofSet
,has
which checks a value against a set. at this point, the method does not works because it need an instance ofSet
. the second parameter isthisArg
, where you can hand over an object, which is used asthis
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a boundthis
by using this as callback:Set.prototype.has.bind(new Set(a))
, which is now a function withthis
.
– Nina Scholz
Mar 25 at 10:21
With arraycommon = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,Array#includes
uses a second parameterfromIndex
and gets this value with the index of the callback ...
– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
I have some troubles to understand this piece of code
b.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks– Kamoulox
Mar 25 at 10:16
I have some troubles to understand this piece of code
b.filter(Set.prototype.has, new Set(a))
. But it's working perfectly, thanks– Kamoulox
Mar 25 at 10:16
5
5
filter
has two parameters, one foir the callback, which is here a prototype function of Set
, has
which checks a value against a set. at this point, the method does not works because it need an instance of Set
. the second parameter is thisArg
, where you can hand over an object, which is used as this
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a bound this
by using this as callback: Set.prototype.has.bind(new Set(a))
, which is now a function with this
.– Nina Scholz
Mar 25 at 10:21
filter
has two parameters, one foir the callback, which is here a prototype function of Set
, has
which checks a value against a set. at this point, the method does not works because it need an instance of Set
. the second parameter is thisArg
, where you can hand over an object, which is used as this
in the callback. mabe a different use makes ir a bet more clear. you could gate the same with a bound this
by using this as callback: Set.prototype.has.bind(new Set(a))
, which is now a function with this
.– Nina Scholz
Mar 25 at 10:21
With array
common = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
With array
common = array .map(o => o[key]) .reduce((a, b) => b.filter(Array.prototype.includes, a));
– Pranav C Balan
Mar 25 at 10:21
@PranavCBalan,
Array#includes
uses a second parameter fromIndex
and gets this value with the index of the callback ...– Nina Scholz
Mar 25 at 10:24
@PranavCBalan,
Array#includes
uses a second parameter fromIndex
and gets this value with the index of the callback ...– Nina Scholz
Mar 25 at 10:24
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
@NinaScholz : oops that's right, that would make issues :)
– Pranav C Balan
Mar 25 at 10:25
add a comment |
You can use the Array#filter
method. Filter the first array by checking if a value is present in all other object properties (arrays), using the Array#every
method to check if a value is present in all remaining arrays.
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
add a comment |
You can use the Array#filter
method. Filter the first array by checking if a value is present in all other object properties (arrays), using the Array#every
method to check if a value is present in all remaining arrays.
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
add a comment |
You can use the Array#filter
method. Filter the first array by checking if a value is present in all other object properties (arrays), using the Array#every
method to check if a value is present in all remaining arrays.
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
You can use the Array#filter
method. Filter the first array by checking if a value is present in all other object properties (arrays), using the Array#every
method to check if a value is present in all remaining arrays.
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
];
let res = a[0].data.filter(v => a.slice(1).every(a => a.data.includes(v)));
console.log(res)
edited Mar 25 at 12:28
Peter Mortensen
13.8k1987113
13.8k1987113
answered Mar 25 at 10:14
Pranav C BalanPranav C Balan
88.6k1391117
88.6k1391117
add a comment |
add a comment |
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
add a comment |
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
add a comment |
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = ;
a.forEach(function(i)
i.data.forEach(function(j)
if (!b.hasOwnProperty(j))
b[j] = 0;
b[j] = b[j] + 1;
);
);
c = []
for (var i in b)
if (b.hasOwnProperty(i))
if (b[i] > 1)
c.push(i)
console.log(c);
answered Mar 25 at 10:12
Shree TiwariShree Tiwari
287112
287112
add a comment |
add a comment |
Use the flat
function in the array:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
Thanks for your answer, that a great code. Butflat
is not working on my browser
– Kamoulox
Mar 25 at 10:21
add a comment |
Use the flat
function in the array:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
Thanks for your answer, that a great code. Butflat
is not working on my browser
– Kamoulox
Mar 25 at 10:21
add a comment |
Use the flat
function in the array:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
Use the flat
function in the array:
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
var a = [
name: "Foo",
id: "123",
data: ["65d4ze", "65h8914d"]
,
name: "Bar",
id: "321",
data: ["65d4ze", "894ver81"]
],
b = [],
c = []
a.forEach(function(object)
b.push(object.data.map(function(val)
return val;
)
);
);
console.log(b.flat());
edited Mar 25 at 12:29
Peter Mortensen
13.8k1987113
13.8k1987113
answered Mar 25 at 10:18
thelastwormthelastworm
1428
1428
Thanks for your answer, that a great code. Butflat
is not working on my browser
– Kamoulox
Mar 25 at 10:21
add a comment |
Thanks for your answer, that a great code. Butflat
is not working on my browser
– Kamoulox
Mar 25 at 10:21
Thanks for your answer, that a great code. But
flat
is not working on my browser– Kamoulox
Mar 25 at 10:21
Thanks for your answer, that a great code. But
flat
is not working on my browser– Kamoulox
Mar 25 at 10:21
add a comment |
You could use reduce
and concat
on each data array, and check the count of each item.
In the end, you check whether all objects across the array contain that item and return it if yes.
Note that this function works if you want to extract the item that has the same occurrence across all objects in the array.
If an item has duplicates, but does not fulfill the above condition, it would not be extracted.
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
add a comment |
You could use reduce
and concat
on each data array, and check the count of each item.
In the end, you check whether all objects across the array contain that item and return it if yes.
Note that this function works if you want to extract the item that has the same occurrence across all objects in the array.
If an item has duplicates, but does not fulfill the above condition, it would not be extracted.
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
add a comment |
You could use reduce
and concat
on each data array, and check the count of each item.
In the end, you check whether all objects across the array contain that item and return it if yes.
Note that this function works if you want to extract the item that has the same occurrence across all objects in the array.
If an item has duplicates, but does not fulfill the above condition, it would not be extracted.
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
You could use reduce
and concat
on each data array, and check the count of each item.
In the end, you check whether all objects across the array contain that item and return it if yes.
Note that this function works if you want to extract the item that has the same occurrence across all objects in the array.
If an item has duplicates, but does not fulfill the above condition, it would not be extracted.
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
let a = [name: "Foo",id: "123",data: ["65d4ze", "65h8914d"],name: "Bar",id: "321",data: ["65d4ze", "894ver81"]]
let arr = a.reduce((prev,next) => prev.data.concat(next.data))
let counts = ;
let result = [];
for (var i = 0; i < arr.length; i++)
var num = arr[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
for (let i in counts)
if (counts[i] === a.length)
result.push(i)
console.log(result)
edited Mar 25 at 12:30
Peter Mortensen
13.8k1987113
13.8k1987113
answered Mar 25 at 10:55
tnkhtnkh
204110
204110
add a comment |
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%2f55335302%2fjavascript-array-of-objects-contains-the-same-array-data%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
So get all arrays elements that are present on all
a
?– Eddie
Mar 25 at 10:06
3
Possible duplicate of Simplest code for array intersection in javascript
– James Long
Mar 25 at 10:07
@JamesLong I don't understand the duplication, why this answer can help me ?
– Kamoulox
Mar 25 at 10:08
@Eddie I need to get all array into the key data. This key is present into all object of my principal array.
– Kamoulox
Mar 25 at 10:11
@Kamoulox you have 2 arrays (a[0].data and a[1].data). You seem to be wanting an array of all the values that appear in both arrays. Unless I'm mis-reading your question
– James Long
Mar 25 at 10:12