0

I am trying to add find a property of an object using a variable but it is not working. When I write the object name iso of the variable, it is working, although the variable and the object name are exactly the same..

function calCulate(nrs){
const product = {DE2599:{name:"tet", bar:2.5, price: 3.5}};
var nr = document.getElementById(nrs).value;
var sku = ("prod" + nr);
var qty = ("qty" + nr);
var pric = ("price"+nr);
var pal = ("pallet"+nr);
var ctry = document.getElementById('country').value;
var x = document.getElementById(qty).value;
var test = document.getElementById(prod).value;
var tests = test.toString(); // way of getting the result
var testr = tests.indexOf(" "); // way of getting the result
var testt = tests.slice(0,testr); // way of getting the result
var uniqueID = ctry+testt; // this value returns DE2599
var mywindow = window.open('','PRINT','height=800,width=800');
var ter = product.uniqueID; // I use uniqueID because it can vary 
var tar = ter.price;
mywindow.document.write(tar); // this is not showing any result; but if I change the uniqueID with the actualy key, ie DE2599, it is working correctly

1 Answer 1

1

uniqueId is not a property of product so your ter will be storing undefined (and you should be getting an error for tar).

When you need to use the value of a variable to access the property of an object, you need to use bracket notation.

const product = {DE2599:{name:"tet", bar:2.5, price: 3.5}};
let uniqueId = 'DE2599';

console.log('with dot notation');
console.log(product.uniqueId);
console.log('with bracket notation');
console.log(product[uniqueId]);

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.