【发布时间】:2015-06-20 08:18:37
【问题描述】:
我目前正在练习 js 中的一些基本问题,并且对这些语言中的任何一种都相当陌生。如果另一个 obj “third” 具有相同的属性值,我想从对象 “second” 将属性的值和名称检索到数组 “temp” 中。 当属性名称已经定义时,我可以这样做,但是如果我不知道实际的属性名称,我怎么能这样做。可能正在使用 Object.keys()
我的代码是这样的:
function where(second, third) {
var arr = [];
var temp=[];
for(var i in second)
{
if(third.hasOwnProperty('last')){
if(second[i].last===third.last){
arr=second[i];
temp.push(arr);
}
}
if(third.hasOwnProperty('first')){
if(second[i].first===third.first){
arr=second[i];
temp.push(arr);
}
}
}
return temp;
}
where([{ first: 'Ram', last: 'Ktm' }, { first: 'Sam', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' });
结果数组是:[{ 'first': 'Tybalt', 'last': 'Capulet' }]
即使我不知道实际的属性名称,我如何才能检索到相同的结果。例如,这里的名字第一个和最后一个可能是食物,用途未知。 我已经在这里处理了以下线程。
[2]: https://stackoverflow.com/questions/4607991/javascript-transform-object-into-array
[1]: https://stackoverflow.com/questions/4607991/javascript-transform-object-into-array
【问题讨论】:
-
什么
for(var i in collection),collection在哪里 -
@fuyushimoya,刚刚更正了它的意思是 for(var i in second)。
标签: javascript arrays object javascript-objects