删除元素等于数组中元素的对象元素
Remove object elements where the element equal elements in array
我有这个对象
var _identLayer = {
id: layerIndex, // Layer ID
label: opLayersMap.layerInfos[i].name, // Layer Name
zoomscale: "2000",
forcescale: true
};
和console.log(_identLayer);
的结果
[Object { id: 1, label: "site1", zoomscale: "2000", forcescale: true }
Object { id: 2, label: "site2", zoomscale: "2000", forcescale: true }
Object { id: 3, label: "site3", zoomscale: "2000", forcescale: true }
Object { id: 4, label: "site4", zoomscale: "2000", forcescale: true }
Object { id: 5, label: "site5", zoomscale: "2000", forcescale: true }
对象{ id: 6, label: "site6", zoomscale: "2000", forcescale: true }
Object { id: 7, label: "site7", zoomscale: "2000", forcescale: true }
Object { id: 8, label: "site8", zoomscale: "2000", forcescale: true }
对象 { id: 9, 标签: "site9", zoomscale: "2000", forcescale: true }]
我也有这个数组
var tempArr=["site1","site3","site5","site7"]
现在我想要 console.log(_identLayer);
_identLayer
中所有元素的结果,除了 _identLayer.label
等于 tempArr
数组
的元素
我喜欢这个,但它不起作用
var tempArr=["site1","site3","site5","site7"]
for (var a = 0; a < tempArr.length; a++) {
if (_identLayer.label != tempArr[a]) {
console.log("_identLayer")
console.log(_identLayer);
}
}
您可以使用 .filter()
来排除结果数组中不需要的元素:
const data = [
{ id: 1, label: "site1", zoomscale: "2000", forcescale: true },
{ id: 2, label: "site2", zoomscale: "2000", forcescale: true },
{ id: 3, label: "site3", zoomscale: "2000", forcescale: true },
{ id: 4, label: "site4", zoomscale: "2000", forcescale: true },
{ id: 5, label: "site5", zoomscale: "2000", forcescale: true },
{ id: 6, label: "site6", zoomscale: "2000", forcescale: true },
{ id: 7, label: "site7", zoomscale: "2000", forcescale: true },
{ id: 8, label: "site8", zoomscale: "2000", forcescale: true },
{ id: 9, label: "site9", zoomscale: "2000", forcescale: true }
];
const filterBy = ["site1", "site3", "site5", "site7"];
const result = data.filter(({ label }) => !filterBy.includes(label));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您可以在这种情况下使用 .includes():
示例:
var tempArr=["site1","site3","site5","site7"]:
if (tempArr.includes(_identLayer.label) == false) {
console.log(_identLayer);
}
我有这个对象
var _identLayer = {
id: layerIndex, // Layer ID
label: opLayersMap.layerInfos[i].name, // Layer Name
zoomscale: "2000",
forcescale: true
};
和console.log(_identLayer);
[Object { id: 1, label: "site1", zoomscale: "2000", forcescale: true }
Object { id: 2, label: "site2", zoomscale: "2000", forcescale: true }
Object { id: 3, label: "site3", zoomscale: "2000", forcescale: true }
Object { id: 4, label: "site4", zoomscale: "2000", forcescale: true }
Object { id: 5, label: "site5", zoomscale: "2000", forcescale: true }
对象{ id: 6, label: "site6", zoomscale: "2000", forcescale: true }
Object { id: 7, label: "site7", zoomscale: "2000", forcescale: true }
Object { id: 8, label: "site8", zoomscale: "2000", forcescale: true }
对象 { id: 9, 标签: "site9", zoomscale: "2000", forcescale: true }]
我也有这个数组
var tempArr=["site1","site3","site5","site7"]
现在我想要 console.log(_identLayer);
_identLayer
中所有元素的结果,除了 _identLayer.label
等于 tempArr
数组
我喜欢这个,但它不起作用
var tempArr=["site1","site3","site5","site7"]
for (var a = 0; a < tempArr.length; a++) {
if (_identLayer.label != tempArr[a]) {
console.log("_identLayer")
console.log(_identLayer);
}
}
您可以使用 .filter()
来排除结果数组中不需要的元素:
const data = [
{ id: 1, label: "site1", zoomscale: "2000", forcescale: true },
{ id: 2, label: "site2", zoomscale: "2000", forcescale: true },
{ id: 3, label: "site3", zoomscale: "2000", forcescale: true },
{ id: 4, label: "site4", zoomscale: "2000", forcescale: true },
{ id: 5, label: "site5", zoomscale: "2000", forcescale: true },
{ id: 6, label: "site6", zoomscale: "2000", forcescale: true },
{ id: 7, label: "site7", zoomscale: "2000", forcescale: true },
{ id: 8, label: "site8", zoomscale: "2000", forcescale: true },
{ id: 9, label: "site9", zoomscale: "2000", forcescale: true }
];
const filterBy = ["site1", "site3", "site5", "site7"];
const result = data.filter(({ label }) => !filterBy.includes(label));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
您可以在这种情况下使用 .includes():
示例:
var tempArr=["site1","site3","site5","site7"]:
if (tempArr.includes(_identLayer.label) == false) {
console.log(_identLayer);
}