0

My Json is like this:

[    
 {"isoCode":"BW","name":"Botswana ","CashOut":"Y","BankOut":"","MMT":null},
 {"isoCode":"BR","name":"Brazil ","CashOut":"Y","BankOut":"Y","MMT":null},
 {"isoCode":"BG","name":"Bulgaria ","CashOut":"Y","BankOut":"Y","MMT":"Y"},
 {"isoCode":"BF","name":"Burkina Faso","CashOut":"Y","BankOut":"","MMT":null},
 {"isoCode":"BI","name":"Burundi","CashOut":"","BankOut":"","MMT":"Y"},
 {"isoCode":"KH","name":"Cambodia","CashOut":"Y","BankOut":"","MMT":null}
]

I want all the names which have BankOut value as "Y" into an array using JavaScript, in order to use those names in my protractor automation.

1
  • You have an array, not JSON. Commented May 22, 2016 at 8:12

2 Answers 2

1

You need to use filter method of array. It takes function as it argument. And runs it against each element of array. If function returns true (or other truthy value) then that element stays in newly created array.

var list =[    {"isoCode":"BW","name":"Botswana ","CashOut":"Y","BankOut":"","MMT":null},
 {"isoCode":"BR","name":"Brazil ","CashOut":"Y","BankOut":"Y","MMT":null},
 {"isoCode":"BG","name":"Bulgaria ","CashOut":"Y","BankOut":"Y","MMT":"Y"},
 {"isoCode":"BF","name":"Burkina Faso ",   "CashOut":"Y","BankOut":"","MMT":null},
 {"isoCode":"BI","name":"Burundi","CashOut":"","BankOut":"","MMT":"Y"},
 {"isoCode":"KH","name":"Cambodia","CashOut":"Y","BankOut":"","MMT":null}
 ];

var onlyBankOutY = list.filter(function (item) {
  return item.BankOut === 'Y';
});

document.body.innerHTML = onlyBankOutY.map(function (item) {
  return JSON.stringify(item);
}).join('<br>');

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

2 Comments

Thank you @lazarev for the response, it worked for me. Thank you sielakos for the solution, in my case I want only elements but I'll use this in my future projects.
I would not recommend using forEach for doing something that filter was created for. It is asking for mistakes in your code.
1
var list =[
  {"isoCode":"BW","name":"Botswana ","CashOut":"Y","BankOut":"","MMT":null},
  {"isoCode":"BR","name":"Brazil ","CashOut":"Y","BankOut":"Y","MMT":null},
  {"isoCode":"BG","name":"Bulgaria ","CashOut":"Y","BankOut":"Y","MMT":"Y"},
  {"isoCode":"BF","name":"Burkina Faso ",   "CashOut":"Y","BankOut":"","MMT":null},           {"isoCode":"BI","name":"Burundi","CashOut":"","BankOut":"","MMT":"Y"},
  {"isoCode":"KH","name":"Cambodia","CashOut":"Y","BankOut":"","MMT":null}
];

var names = [];
list.forEach(function(el) {
  if (el.BankOut === 'Y') {
    names.push(el.name)
  }
})

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.