Push to object instead of array
I'm using underscore to extract some props into a separate object but the structure is not as I want:
let element = {
foo: 0,
bar: 1,
baz: _.map(
_.filter(element.properties, (prop) =>
_.contains(validationProps, prop.name)), (rule) =>
({ [rule.name]: rule.value }) )
}
.. returns an array of objects for baz
:
[ {"required":true} , {"maxLength":242} ]
.. what I need however is:
{ "required":true, "maxLength":242 }
javascript underscore.js
add a comment |
I'm using underscore to extract some props into a separate object but the structure is not as I want:
let element = {
foo: 0,
bar: 1,
baz: _.map(
_.filter(element.properties, (prop) =>
_.contains(validationProps, prop.name)), (rule) =>
({ [rule.name]: rule.value }) )
}
.. returns an array of objects for baz
:
[ {"required":true} , {"maxLength":242} ]
.. what I need however is:
{ "required":true, "maxLength":242 }
javascript underscore.js
What doeselement.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself.element = {a: '1', foo: element.a}
element.foo
is undefined
– Abana Clara
Nov 16 '18 at 5:03
@AbanaClara[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04
add a comment |
I'm using underscore to extract some props into a separate object but the structure is not as I want:
let element = {
foo: 0,
bar: 1,
baz: _.map(
_.filter(element.properties, (prop) =>
_.contains(validationProps, prop.name)), (rule) =>
({ [rule.name]: rule.value }) )
}
.. returns an array of objects for baz
:
[ {"required":true} , {"maxLength":242} ]
.. what I need however is:
{ "required":true, "maxLength":242 }
javascript underscore.js
I'm using underscore to extract some props into a separate object but the structure is not as I want:
let element = {
foo: 0,
bar: 1,
baz: _.map(
_.filter(element.properties, (prop) =>
_.contains(validationProps, prop.name)), (rule) =>
({ [rule.name]: rule.value }) )
}
.. returns an array of objects for baz
:
[ {"required":true} , {"maxLength":242} ]
.. what I need however is:
{ "required":true, "maxLength":242 }
javascript underscore.js
javascript underscore.js
edited Nov 16 '18 at 5:05
John3136
24.3k33361
24.3k33361
asked Nov 16 '18 at 5:00
3zzy3zzy
26.5k84230362
26.5k84230362
What doeselement.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself.element = {a: '1', foo: element.a}
element.foo
is undefined
– Abana Clara
Nov 16 '18 at 5:03
@AbanaClara[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04
add a comment |
What doeselement.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself.element = {a: '1', foo: element.a}
element.foo
is undefined
– Abana Clara
Nov 16 '18 at 5:03
@AbanaClara[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04
What does
element.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself. element = {a: '1', foo: element.a}
element.foo
is undefined– Abana Clara
Nov 16 '18 at 5:03
What does
element.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself. element = {a: '1', foo: element.a}
element.foo
is undefined– Abana Clara
Nov 16 '18 at 5:03
@AbanaClara
[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04
@AbanaClara
[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04
add a comment |
1 Answer
1
active
oldest
votes
Or use JavaScript's Array.prototype.reduce()
The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
Thanks, that works awesome along with_.pick
.
– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
add a comment |
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%2f53331716%2fpush-to-object-instead-of-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Or use JavaScript's Array.prototype.reduce()
The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
Thanks, that works awesome along with_.pick
.
– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
add a comment |
Or use JavaScript's Array.prototype.reduce()
The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
Thanks, that works awesome along with_.pick
.
– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
add a comment |
Or use JavaScript's Array.prototype.reduce()
The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
Or use JavaScript's Array.prototype.reduce()
The reduce() method executes a reducer function (that you provide) on each member of the array resulting in a single output value.
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
let data = [{
"name": "label",
"value": "Short 2"
},
{
"name": "required",
"value": true
},
{
"name": "maxLength",
"value": 242
}
];
let reformatted = data.reduce((pv, cv) => {
pv[cv.name] = cv.value;
return pv;
}, {});
console.log(reformatted);
answered Nov 16 '18 at 5:12
WillWill
1,81911211
1,81911211
Thanks, that works awesome along with_.pick
.
– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
add a comment |
Thanks, that works awesome along with_.pick
.
– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
Thanks, that works awesome along with
_.pick
.– 3zzy
Nov 16 '18 at 5:25
Thanks, that works awesome along with
_.pick
.– 3zzy
Nov 16 '18 at 5:25
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Incidentally, you can stick with underscore if you want. That has reduce as well.
– Will
Nov 16 '18 at 5:37
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
Yep, thats what I went with.
– 3zzy
Nov 16 '18 at 5:41
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%2f53331716%2fpush-to-object-instead-of-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
What does
element.properties
look like? Plus, element still doesn't exist when u refer to itself from inside itself.element = {a: '1', foo: element.a}
element.foo
is undefined– Abana Clara
Nov 16 '18 at 5:03
@AbanaClara
[{"name":"label","value":"Short 2"},{"name":"required","value":true},{"name":"maxLength","value":242}]
– 3zzy
Nov 16 '18 at 5:04