javascript array filter shows type error [duplicate] - javascript

This question already has answers here:
Accessing an object property with a dynamically-computed name
(19 answers)
Closed 5 years ago.
I want to get the value from array. It shows Type error. The code is
var user = "username6";
var result = categories.filter(x => x.user)[0].user;
TypeError: Cannot read property 'user' of undefined
But it work in
var result = categories.filter(x => x.username6)[0].username6;
I want to give the "username6" variable in user. And execute
var result = categories.filter(x => x.user)[0].user;
How it possible? Please help me?

You should use the brackets notation instead of the dot notation
var user = "username6";
var result = categories.filter(x => x[user])[0][user];

Related

Add a variable to a response path [duplicate]

This question already has answers here:
Accessing an object property with a dynamically-computed name
(19 answers)
Closed 1 year ago.
I'm trying to add a variable into a path like this:
response.response.body.result.company.data.t${variable}.month_col_val[i]
I know it's wrong, yet I'm not being able to find if it's actually posible to do it and how to do it.
My json file contains objects named t0, t1, t2... and so on inside data, so i'm trying to get an specific one by adding the variable value along the T
Variable is define outside the fuction and pass as a parameter.
for (let o = 0; o < 12; o++) {
cy.get($el).find('.month-data-cols').eq(o).invoke('text').then($text => {
let monthGross = $text
let monthGrossReq = response.response.body.result.company.data.t${variable}.month_col_val[o]
monthGross = monthGross.toString().replace(/,/g, '').trim();
expect(monthGross).to.include(monthGrossReq);
})
};
Try using square-bracket notation instead of dot-notation at that property
const data = response.response.body.result.company.data
const monthGrossReq = data[`t${variable}`].month_col_val[o]

How to get info from json using a variable [duplicate]

This question already has answers here:
Accessing an object property with a dynamically-computed name
(19 answers)
Closed 1 year ago.
So I'm trying to get data from a JSON and I declared a variable and want to use the thing from that variable to get info from the JSON I'm trying to do this but I don't know what the problem is
let e = "KA8AL9AE";
let codes = '{"T9R3P5YE": "10", "8HAW69VC": "20"}'
codes = JSON.parse(codes)
console.log(codes.e)
I've tried doing
let e = "KA8AL9AE";
let codes = '{"T9R3P5YE": "10", "8HAW69VC": "20"}'
codes = JSON.parse(codes)
console.log(`${codes. + e}`)
But it didn't work, Is there a way to do this?
You could call the new key like:
codes[e]

Getting JSON value from key, where key is variable name [duplicate]

This question already has answers here:
JavaScript property access: dot notation vs. brackets?
(17 answers)
Accessing an object property with a dynamically-computed name
(19 answers)
Closed 2 years ago.
I am trying to get the value of a key in a JSON object, and the name of the key is in a variable.
var fs = require('fs');
var id = 230345038039;
var jsonstuff =
var parsedstuff = JSON.parse(fs.readFileSync('./file.json', 'utf8'));
console.log(parsedstuff.id);
Expected output: 12
I've tried parsedstuff.$$id, parsedstuff.${!id} and parsedstuff.$id. None work.
Is there a way to do this?
Edit: SOLVED. parsedstuff[id] is what I should be using.

Why doesn't JavaScript convert a string to an Object? [duplicate]

This question already has answers here:
How to check if object property exists with a variable holding the property name?
(11 answers)
How to use a variable for a key in a JavaScript object literal?
(16 answers)
Closed 5 years ago.
I'm attempting to run a list of strings through an object. When I do it individually it works, but when I pass it through as a string it doesn't work. How would I fix this?
// this doesn't work
var a = "IntegrationItem1";
var data = faq.a;
// but this works
var data = faq.IntegrationItem1;
What's causing the first example to not work? Is the variable data seeing it as faq."IntegrationItem1" instead of faq.IntegrationItem1?
You can access properties of the object using it's names:
var a = "IntegrationItem1";
var data = faq[a];
what you need is faq["IntegrationItem1"] => faq[a]

Updating a result in JSON with a dynamic variable name [duplicate]

This question already has answers here:
JavaScript object: access variable property by name as string [duplicate]
(3 answers)
Closed 8 years ago.
I need to update a value in my JSON.
My JSON result looks like this:
results = {"ROWCOUNT":50,"COLUMNS":["PERSONID","NAME"],"DATA":{"PERSONID":["42","43","44"], "NAME":["JOE","TOM","JANE"]}
resultData = results.DATA
In the below code I am looping over the result set and attempting to update a value at a position. I believe it is failing because I am not using dynamic variables correctly.
var columnName = "NAME";
for(i=0; i < results.ROWCOUNT; i++ ){
resultData.columnName[i] = "foo" // failing here due to "columnName" being dynamic.
}
Figured it out.. You have to use array syntax
resultData[columName][i]

Categories