在javascript中,如何使用一个数组的内容将另一个数组的内容设置为true?
我有两个javascript数组。一个默认数组:在javascript中,如何使用一个数组的内容将另一个数组的内容设置为true?,javascript,arrays,Javascript,Arrays,我有两个javascript数组。一个默认数组: propertyTypes = [ {key:'OFFICE', value:false}, {key:'RESIDENTIAL', value:false}, {key:'RETAIL', value:false}, {key:'INDUSTRIAL', value:false}, {key:'HOTEL', value:false} ]; 另一个数组如下所示: property_types: [
propertyTypes = [
{key:'OFFICE', value:false},
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:false},
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
另一个数组如下所示:
property_types: [
{
"type": "OFFICE"
},
{
"type": "RETAIL"
}
]
propertyTypes = [
{key:'OFFICE', value:true}, // so this one should be true
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:true}, // and this one
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
propertyTypes = [
{key:'OFFICE', value:false},
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:false},
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
property_types= [
{
type: "OFFICE"
},
{
type: "RETAIL"
}
];
propertyTypes.forEach(function(pType) {
for (index = 0; index < property_types.length; ++index) {
if(pType.key==property_types[index].type){
pType.value = true;
break;
}
}
});
现在,我想将第一个数组中的所有值设置为true
,这些值作为类型出现在第二个数组中,以便第一个数组如下所示:
property_types: [
{
"type": "OFFICE"
},
{
"type": "RETAIL"
}
]
propertyTypes = [
{key:'OFFICE', value:true}, // so this one should be true
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:true}, // and this one
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
propertyTypes = [
{key:'OFFICE', value:false},
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:false},
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
property_types= [
{
type: "OFFICE"
},
{
type: "RETAIL"
}
];
propertyTypes.forEach(function(pType) {
for (index = 0; index < property_types.length; ++index) {
if(pType.key==property_types[index].type){
pType.value = true;
break;
}
}
});
我有一些关于使用某种双重嵌套循环的想法,但它们似乎都没有任何意义
有人知道我怎样才能合乎逻辑地做到这一点吗?欢迎所有提示
您可以使用来实现这一点。
map()方法创建一个新数组,其结果是对该数组中的每个元素调用提供的函数
试试这个:
var属性类型=[{
键:“办公室”,
值:false
}, {
关键词:“住宅”,
值:false
}, {
关键词:零售业,
值:false
}, {
关键词:“工业”,
值:false
}, {
钥匙:“酒店”,
值:false
}];
变量属性类型=[{
“类型”:“办公室”
}, {
“类型”:“零售”
}];
propertyTypes.map(函数(项){
对于(var i=0,iLen=property_types.length;i 警报(JSON.stringify(propertyTypes))代码>双for循环就是这样做的。下面是一个简单的例子:
var propertyTypesOut = [];
for (var i = propertyTypes.length - 1; i >= 0; i--) {
var found = false;
for (var j = property_types.length - 1; j >= 0; j--) {
if (propertyTypes[i].key === property_types[j].type) {
var found = true;
break;
}
};
propertyTypesOut.push({
key: propertyTypes[i].key,
value: found
});
};
是的,您需要2个fors,您可以这样做:
property_types: [
{
"type": "OFFICE"
},
{
"type": "RETAIL"
}
]
propertyTypes = [
{key:'OFFICE', value:true}, // so this one should be true
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:true}, // and this one
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
propertyTypes = [
{key:'OFFICE', value:false},
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:false},
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
property_types= [
{
type: "OFFICE"
},
{
type: "RETAIL"
}
];
propertyTypes.forEach(function(pType) {
for (index = 0; index < property_types.length; ++index) {
if(pType.key==property_types[index].type){
pType.value = true;
break;
}
}
});
属性类型=[
{key:'OFFICE',value:false},
{key:'RESIDENTIAL',value:false},
{key:'RETAIL',value:false},
{key:'INDUSTRIAL',value:false},
{key:'HOTEL',value:false}
];
属性类型=[
{
类型:“办公室”
},
{
类型:“零售”
}
];
propertyTypes.forEach(函数(pType){
对于(索引=0;索引
这里有第一个简单的方法,可以让您开始
var propertyTypes = [
{key:'OFFICE', value:false},
{key:'RESIDENTIAL', value:false},
{key:'RETAIL', value:false},
{key:'INDUSTRIAL', value:false},
{key:'HOTEL', value:false}
];
var property_types = [
{
"type": "OFFICE"
},
{
"type": "RETAIL"
}
];
for (var i = 0; i < property_types.length; i++) {
var key = property_types[i].type;
for (var j = 0; j < propertyTypes.length; j++) {
if (propertyTypes[j].key === key) {
propertyTypes[j].value = true;
}
}
}
console.log(propertyTypes);
/* returns
[ { key: 'OFFICE', value: true },
{ key: 'RESIDENTIAL', value: false },
{ key: 'RETAIL', value: true },
{ key: 'INDUSTRIAL', value: false },
{ key: 'HOTEL', value: false } ]
*/
var属性类型=[
{key:'OFFICE',value:false},
{key:'RESIDENTIAL',value:false},
{key:'RETAIL',value:false},
{key:'INDUSTRIAL',value:false},
{key:'HOTEL',value:false}
];
变量属性类型=[
{
“类型”:“办公室”
},
{
“类型”:“零售”
}
];
对于(var i=0;i
当您在数组中进行迭代时,
循环的应该可以工作
而且
应该是:
property_types = [...]
var属性类型=[
{key:'OFFICE',value:false},
{key:'RESIDENTIAL',value:false},
{key:'RETAIL',value:false},
{key:'INDUSTRIAL',value:false},
{key:'HOTEL',value:false}
]
,属性类型=[
{“类型”:“办公室”}
,
{“类型”:“零售”}
]
,结果=“”;
for(first=0;first ;
}
记录(结果)代码>
是否需要保留propertyTypes的顺序?数据的结构化方式需要迭代两个数组。为什么你的解决方案不起作用?请把它寄出去。