加入一个对象的元素并排除一些

Join elements of an object and exclude some

我有一个 Typescript 项目,我想在其中加入一个对象的所有值,一个除外。

这是我的对象:

let dataInit = {
  "host": "CAPR",
  "ua": "RMA",
  "country": "VE",
  "page":3
};

我就是这样做的:

let dataJoin = Object.values(dataInit).join(',')

这是我得到的:

CAPR,RMA,VE,3

我需要知道如何删除 'page' 属性,这就是我想要的:

CAPR,RMA,VE

我会先解构对象,再创建一个新对象

const { host, ua, country } = dataInit
const dataNew = { host, ua, country }

然后在新对象上调用值连接方法。

如果不知道其他属性,可以先用Object.entries() to give you an array of arrays containing the keys and values. That array can then be filtered to remove the "page" element, mapped只包含值,最后加入。

let dataInit = {
  "host": "CAPR",
  "ua": "RMA",
  "country": "VE",
  "page":3
};

console.log(
Object.entries(dataInit)
  .filter(([key,val]) => key !== "page")
  .map(([_,val]) => val)
  .join(",")
)

您可以过滤结果数组:

let dataJoin = Object.values(dataInit).filter(element => typeof element === "string").join(",");

或者您可以使用其他评论中介绍的解构。

您可以使用 for...in 循环遍历元素并跳过 page 属性.

let dataInit = {
  "host": "CAPR",
  "ua": "RMA",
  "country": "VE",
  "page": 3
};

const convertObject = (obj) => {
  let list = [];
  for (const prop in obj) {
    if (prop !== "page") {
      list.push(obj[prop]);
    }
  }
  return list.join(",");
}

console.log(convertObject(dataInit));