[英]match value from object to another array in js
你好,我有一个数组对象,我必须从具有匹配数组键的对象中找到值,下面是数组和对象,我试过但没有得到结果
var filterkey = [a,b,c];
var palistarray = [{
{
"Id": 199,
"a": "Rajesh Tamore",
"b": "23/11/2022",
"c": "23/11/2022",
"d": "W"
},
{
"Id": 200,
"a": "Sunil N",
"b": "21/11/2022",
"c": "21/11/2022",
"d": "S"
},
}]
i want result like below
[{
{
"a": "Rajesh Tamore",
"b": "23/11/2022",
"c": "23/11/2022",
},
{
"a": "Sunil N",
"b": "21/11/2022",
"c": "21/11/2022",
},
}]
我试过下面的代码
palistarray.find((item,index) => {
console.log(item[filterkey[index]]);
});
尝试像这样使用Array.prototype.map() 、 Object.keys()和Object.prototype.hasOwnProperty()函数:
const result = palistarray.map((obj) => {
const newObj = {};
Object.keys(obj).forEach((key) => {
if (filterkey.includes(key) && obj.hasOwnProperty(key)) {
newObj[key] = obj[key];
}
});
return newObj;
});
您可以编写自己的函数,如下所示:
const filterkey = ['a', 'b', 'c'] const palistarray = [ { 'Id': 199, 'a': 'Rajesh Tamore', 'b': '23/11/2022', 'c': '23/11/2022', 'd': 'W', }, { 'Id': 200, 'a': 'Sunil N', 'b': '21/11/2022', 'c': '21/11/2022', 'd': 'S', }, ] const filterBy = (array, predicate) => array.map(value => { const result = {} predicate.forEach(key => { if (value[key]) { result[key] = value[key] } }) return result }) const result = filterBy(palistarray, filterkey) console.log(result)
最好的祝福!
我必须假设你的数组应该是这样的,没有额外的花括号:
var palistarray = [{
"Id": 199,
"a": "Rajesh Tamore",
"b": "23/11/2022",
"c": "23/11/2022",
"d": "W"
},
{
"Id": 200,
"a": "Sunil N",
"b": "21/11/2022",
"c": "21/11/2022",
"d": "S"
},
];
一个非常简单的方法是这样的:
const filterArray = ["a", "b", "c"]; const palistarray = [{ "Id": 199, "a": "Rajesh Tamore", "b": "23/11/2022", "c": "23/11/2022", "d": "W" }, { "Id": 200, "a": "Sunil N", "b": "21/11/2022", "c": "21/11/2022", "d": "S" }, ]; const mapped = palistarray.map(item => { const data = {}; filterArray.forEach(key => { data[key] = item[key]; }) return data; }); console.log(mapped);
这只是映射并从对象返回指定键的情况
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.