Я хотел бы знать, как фильтровать объект, передавая массивы значений в 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 спасибо за ответ, мне нужно получить объект, как показано, передав массивы значений в функцию
StackOverflow не является бесплатной службой кодирования. Обновите свой вопрос, чтобы показать, что вы уже пробовали в минимальный воспроизводимый пример. Для получения дополнительной информации см. Как спросить и возьмите тур :)
@Murali Nepalli большое спасибо за ответ, но я получаю id.map не является функцией
Просто объявите идентификатор массива, отправьте, получите и образец, затем запустите приведенный ниже код.
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/
Что вы пытались сделать такого?