Object property value checking

In this case I am going to iterate the object property value checking and append the value to new array.

by Udhay

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<ul data-bind="foreach: myArray">
  <li data-bind="text: $data"></li>
</ul>

<div data-bind="text: isValid() ? 'Succes' : 'fail'">

</div>

JavaScript

var viewModel = function(){ var responseJson = [{
    code: 'u01a1',
    title: 'Assessment title 001',
    activityText: 'Missing Activity Text',
    criterionText: 'Missing Criteria Text',
    criteriaExternalId: 'External Id missing',
    performanceLvel: 'Perfromance level is missing',
    isActivityValid: true,
    competencyAligned: 'Sucess'
  },
  {
    code: 'u02a2',
    title: 'Assessment title 002',
    activityText: 'Missing Activity Text',
    criterionText: 'Missing Criteria Text',
    criteriaExternalId: 'External Id missing',
    performanceLvel: 'Perfromance level is missing',
    isActivityValid: true,
    competencyAligned: 'Sucess'
  },
  {
    code: 'u03a3',
    title: 'Assessment title 003',
    activityText: 'Missing Activity Text',
    criterionText: 'Missing Criteria Text',
    criteriaExternalId: 'External Id missing',
    performanceLvel: 'Perfromance level is missing',
    isActivityValid: true,
    competencyAligned: 'Sucess'
  },
  {
    code: 'u04a4',
    title: 'Assessment title 004',
    activityText: 'Missing Activity Text',
    criterionText: 'Missing Criteria Text',
    criteriaExternalId: 'External Id missing',
    performanceLvel: 'Perfromance level is missing',
    isActivityValid: true,
    competencyAligned: 'Sucess'
  }
];
this.myArray = ko.observableArray();
this.isValid = ko.observable(false);
var errorLists = [];
var collection = [];
responseJson.forEach(function(errorList) {
  errorLists = [];
  Object.keys(errorList).forEach(function(key) {
    var val = errorList[key];
    var keyValue = key;
    if (val != "Sucess") {
      errorLists.push('missing' + val);
    }
  });
  collection.push(errorLists);
  console.log(collection);
	self.myArray.push.apply(self.myArray, collection);

  return;
});
this.isValid(this.myArray().length > 0 ? true : false )
}

ko.applyBindings(viewModel);