Передать массив значений и объект фильтрации в javascript

Я хотел бы знать, как фильтровать объект, передавая массивы значений в javascript

Как передать массив значений в качестве аргументов и отфильтровать объект с помощью javascript. На основе send и receive с id получите значение объекта в javascript.

для id транс, если send (вход) равен bank, а receive (выход) равен bank, для id фонда, если send (вход) равен credit, а receive (выход) равен bank и для id insta, если send (вход) равен debit, а receive (выход) равен bank, получить результат obj

var send=['bank', 'credit', 'debit'];
var receive = ['bank', 'bank', 'bank'];
var id=['trans', 'fund', 'insta'];
var result = getSample(sample,send, receive, id);


I have tried but got stuck
function getSample(sample,sn, rcn, id){
  const temp = sample.map(e => Object.entries(e).map(([k, val]) => val)).flat(3)
    var selectval= temp.filter(x=>x.in==scn && x.out==rcn && x.id == id);
   return selectval;
}

var sample =
  [{
    "btob": [{
      "id": "trans",
      "in": "bank",
      "out": "bank",
      "value": 10,
    },{
      "id": "fund",
      "in": "bank",
      "out": "bank",
      "value": 10
    },{
      "id": "insta",
      "in": "bank",
      "out": "bank",
      "value": 10
    }],
    "ctob": [{
      "id": "trans",
      "in": "credit",
      "out": "bank",
      "value": 20
    },{
      "id": "fund",
      "in": "credit",
      "out": "bank",
      "value": 10
    },{
      "id": "insta",
      "in": "bank",
      "out": "bank",
      "value": 10
    }],
   "dtob": [{
      "id": "trans",
      "in": "debit",
      "out": "bank",
      "value": 20
    },{
      "id": "fund",
      "in": "debit",
      "out": "bank",
      "value": 10
    },{
      "id": "insta",
      "in": "debit",
      "out": "bank",
      "value": 10
    }]
}]

Expected Output:
  result=[
    {
      "id": "trans",
      "in": "bank",
      "out": "bank",
      "value": 10,
    },
    {
      "id": "fund",
      "in": "credit",
      "out": "bank",
      "value": 10
    },
    {
      "id": "insta",
      "in": "debit",
      "out": "bank",
      "value": 10
    }
  ]



Что вы пытались сделать такого?

briosheje 08.04.2019 09:17

@briosheje спасибо за ответ, мне нужно получить объект, как показано, передав массивы значений в функцию

Senthil 08.04.2019 09:21

StackOverflow не является бесплатной службой кодирования. Обновите свой вопрос, чтобы показать, что вы уже пробовали в минимальный воспроизводимый пример. Для получения дополнительной информации см. Как спросить и возьмите тур :)

Barmar 08.04.2019 09:33

@Murali Nepalli большое спасибо за ответ, но я получаю id.map не является функцией

Senthil 08.04.2019 10:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто объявите идентификатор массива, отправьте, получите и образец, затем запустите приведенный ниже код.

const temp = sample.map(e => Object.entries(e).map(([k, val]) => val)).flat(3);
var jointArray = id.map((currentValue, index) => {
  return id[index]+"-"+send[index]+"-"+receive[index];
});
var result = temp.filter(function(item) { 
   return ( jointArray.indexOf(item.id+"-"+item.in+"-"+item.out)!=-1  ) 
});
console.info(result);  

вот скрипт js https://jsfiddle.net/qcxntpfy/

Другие вопросы по теме