Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

ACC not recognizing bracket notation javascript, always returns "undefined"

Avatar

Level 1

I'm attempting to craft a property accessor for referencing a set of mapped fields in our targetData, within our template, however ACC is not honoring our usage of the bracket notation, regardless of whether or not we surround the property/field name with double quotes.

Is this a known bug with a workaround or a patch?


<%
var td = {
    passholderName_1: 'passholderName_1',
    passholderName_2: 'passholderName_2'
}
%>

<%
var conditional = "passholderName";
for (var a = 1; a < 12; a++) {
    var value = td[conditional + "_" + a];
    if (value) {
%>
<%= value %>
<% } %>
<% } %>
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @JoshuelPattersonRM - I tested your code and it works fine in a delivery template.

You should probably change the for loop limit to 3 as you only have 2 array items, but otherwise it works fine.

Cheers

Darren

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

Hi @JoshuelPattersonRM - I tested your code and it works fine in a delivery template.

You should probably change the for loop limit to 3 as you only have 2 array items, but otherwise it works fine.

Cheers

Darren

Avatar

Community Advisor

Hi,

 

Use this:

<%
var td = {
  passholderName_1: 'passholderName_1',
  passholderName_2: 'passholderName_2',
}

Object
  .keys(td)
  .filter(function(k){return td[k]})
  .forEach(function (k) {%><%= td[k] %><% });
%>

 

Thanks,

-Jon

Avatar

Administrator

Hi @JoshuelPattersonRM,

Were any of the given solutions helpful to resolve your query or do you still need more help here? Do let us know.

Thanks!