删除元素等于数组中元素的对象元素

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);
}