gpt4 book ai didi

javascript - 无法动态推送数组值比较两个数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:57 24 4
gpt4 key购买 nike

我有两个 Angular 数组。

一个是常规数组 A,其值为 ['Stock_Number', 'Model', 'Type', 'Bill_Number']

还有一个是关联数组B,如下所示

0:[
{
'Stock_Number': 'GTH738',
'Model': 'sample_model',
'Type': 'sample_type',
'Bill_Number': 7784754,
'some_prop1': 'prop1_val',
'some_prop2': 'prop2_val'
}
];

两个数组都是动态的。 B 的列也多于 A。A 具有 B 的键(A 是 B 的子集)我只想为 A 中的元素获取一个新数组 C。为此,我正在检查 B 中是否存在键。以下是我的代码

for(var i=0,j=0; i<B.length,j<A.length; i++,j++){
if (!B.hasOwnProperty(A)) {
var value = A[j];
console.log('if-'+value); //printing value
console.log(B[0].value); // printing undefined
// C.push(B[0].value);
}else{
//some code
}
}

结果数组应该如下所示

{
'Stock_Number': 'GTH738',
'Model': 'sample_model',
'Type': 'sample_type',
'Bill_Number': 7784754
}

有人可以建议我如何实现吗?

最佳答案

您可以使用这种方法。为了更好地说明您需要什么,我在不在数组 A 中的 B 数组的对象上添加了一些额外的属性。因此,这些属性被排除在数组 C 中的对象之外

var A = ['Stock_Number', 'Model', 'Type', 'Bill_Number'];
var B = [
{
'Stock_Number': 'GTH738',
'Model': 'sample_model',
'Type': 'sample_type',
'Bill_Number': 7784754
},
{
'Stock_Number': 'GTH740',
'Model': 'sample_model2',
'Type': 'sample_type2',
'Bill_Number': 7784754,
'someProp1': 1,
'someProp2': 2,
}
];

var C = [];
for(var i=0; i<B.length; i++){
var obj = B[i];
var objKeys = Object.keys(obj);
var resObj = {};
A.forEach(function(itemA){
if(objKeys.indexOf(itemA) !== -1){
resObj[itemA] = obj[itemA];
}
});
C.push(resObj);
}

console.log(C);

关于javascript - 无法动态推送数组值比较两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49506289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com