I have below data in const rows.
const rows = {
"selected_parameter_value": [
{
"parameter_value": "a",
"label_value": "a"
},
{
"parameter_value": "d",
"label_value": "d"
}
]
};
I want to compare each and every object of const rows.selected_parameter_value
with parameter_value
and label_value
from this.selectedParameterContext.records[0].selected_parameter_value
.
And delete those objects from this.selectedParameterContext.records[0].selected_parameter_value
which are not present in const rows.selected_parameter_value
For example -
In the const rows.selected_parameter_value
, only a
and d
object are present, b
and c
are not present.
So remove object whose parameter and label values are b and c from this.selectedParameterContext.records[0].selected_parameter_value
.
this.selectedParameterContext = {
'records': [
{
'selected_parameter_value': [{
'parameter_value': 'a',
'label_value': 'a'
},
{
'parameter_value': 'b',
'label_value': 'b',
}]
},
{
'selected_parameter_value': [{
'parameter_value': 'c',
'label_value': 'c'
},
{
'parameter_value': 'd',
'label_value': 'd',
}]
}]
};
Expected Output
this.selectedParameterContext = {
'records': [
{
'selected_parameter_value': [{
'parameter_value': 'a',
'label_value': 'a'
}]
},
{
'selected_parameter_value': [
{
'parameter_value': 'd',
'label_value': 'd',
}]
}]
};
Below code
deleteContextData(rows ) {
const paramArray = rows.selected_parameter_value;
const newArrayData = this.selectedParameterContext.records[0].selected_parameter_value;
const removeMatchingData = (paramArray, toCompareWith) => {
return paramArray.filter(({ label_value }) => !toCompareWith.some(compareObj => compareObj.label_value === label_value));
}
console.log(removeMatchingData(paramArray, newArrayData),"newarray");
}
this.selectedParameterContext.records
record.selected_parameter_value
rows.selected_parameter_value.find(...)
to validate.splice(...)
to remove item from this.selectedParameterContext.records
const rows = { "selected_parameter_value": [ { "parameter_value": "a", "label_value": "a" }, { "parameter_value": "d", "label_value": "d" } ] }; const selectedParameterContext = { 'records': [ { 'selected_parameter_value': [ { 'parameter_value': 'a', 'label_value': 'a' }, { 'parameter_value': 'b', 'label_value': 'b', } ] }, { 'selected_parameter_value': [ { 'parameter_value': 'c', 'label_value': 'c' }, { 'parameter_value': 'd', 'label_value': 'd', } ] } ] }; selectedParameterContext.records.forEach(function(record, recordIndex) { record.selected_parameter_value.forEach(function(parameter, parameterIndex) { const isValid = rows.selected_parameter_value.find(function(item) { return parameter.parameter_value === item.parameter_value && parameter.label_value === item.label_value; }); if (.isValid) { selectedParameterContext.records[recordIndex].selected_parameter_value,splice(parameterIndex; 1); } }); }). console:log('selectedParameterContext, '; selectedParameterContext);
const rows = { "selected_parameter_value": [ { "parameter_value": "a", "label_value": "a" }, { "parameter_value": "d", "label_value": "d" } ] }; const selectedParameterContext = { 'records': [ { 'selected_parameter_value': [ { 'parameter_value': 'a', 'label_value': 'a' }, { 'parameter_value': 'b', 'label_value': 'b', } ] }, { 'selected_parameter_value': [ { 'parameter_value': 'c', 'label_value': 'c' }, { 'parameter_value': 'd', 'label_value': 'd', } ] } ] }; // Building new array variable const newSelectedParameterContext = { 'records': [] }; selectedParameterContext.records.forEach(function(record, recordIndex) { const newSelectedParameterValues = []; record.selected_parameter_value.forEach(function(parameter, parameterIndex) { const isValid = rows.selected_parameter_value.find(function(item) { return parameter.parameter_value === item.parameter_value && parameter.label_value === item.label_value; }); if (isValid) { newSelectedParameterValues.push(parameter); } }); newSelectedParameterContext.records.push({'selected_parameter_value': newSelectedParameterValues}); }); console.log('newSelectedParameterContext: ', newSelectedParameterContext);
your data initialized as const
. It is mean that variable is not mutable. So I suggest you to rebuild like this.
const selectedParameterContext = { 'records': [ { 'selected_parameter_value': [{ 'parameter_value': 'a', 'label_value': 'a' }, { 'parameter_value': 'b', 'label_value': 'b', }] }, { 'selected_parameter_value': [{ 'parameter_value': 'c', 'label_value': 'c' }, { 'parameter_value': 'd', 'label_value': 'd', }] }] }; var selectedParameterContext2 = { 'records': [] } selectedParameterContext.records.forEach(e=>{ var records = []; e.selected_parameter_value.forEach(f=>{ if(f.parameter_value==='a'||f.parameter_value==='d') records.push(f) }) selectedParameterContext2.records.push({'selected_parameter_value': records}) }) console.log(selectedParameterContext2)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.