【问题标题】:How to convert the object of character to string如何将字符对象转换为字符串
【发布时间】:2018-07-19 14:34:06
【问题描述】:

我得到了这个人物对象:

Resource {0: "-", 1: "-", 2: "-", 3: "-",  4: "-", 5: "B", 6: "E", 7: "G", 8: "I", 9: "N", 10: " ", 11: "C", 12: "E", 13: "R", 14: "T", 15: "I", .... }

并且想把它转换成这个

-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIRAIOTT79H7EtIvqOFiuaLtgAwDQYJKoZIhvcNAQELBQAw
QjEfMB0GA1UECgwWdGVzdC1qcGhhbS51bml0eWRldi5pbzEfMB0GA1UEAwwWdGVz
dC1qcGhhbS51bml0eWRldi5pbzAeFw0xODAyMDcyMTQxNTBaFw0yODAyMDYyMTQx
NTBaMEIxHzAdBgNVBAoMFnRlc3QtanBoYW0udW5pdHlkZXYuaW8xHzAdBgNVBAMM
FnRlc3QtanBoYW0udW5pdHlkZXYuaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDJX/QhNgAE2ehS/KhE+j81gwRKbgLbyPy9mhQbYI4e0ZCIufINksjK
AvQVi8/lQ4GAUSHND1/R8K0/oQCA9Z0+hc3Sp+gi7HmuDt63Pt899VH0BiIj7Dr1
wxC2h1ZshwqfMrT22R3nQFNjJ3AkSZFGuUsQqK4UIraRUvdkJFU61Vh/RN8zuTfX
it0uPS0KvXJlJA/XUfKq5P8UsPMdzDCoALU+QF3GrsB0GEwqAjhAjIqDdNyyZyUl
dUG3YrSc70Gmzyt9v7gygahBz6TrTF6qTiLm1x9J6SNLhbZde1RcRJ4FkLD4vHZO
0xGJ6wAIiL6gsOfLxDkDs9pLmmUBsdUJAgMBAAEwDQYJKoZIhvcNAQELBQADggEB
AL23ZqPWrhssRdvz1WrWDN0QrE5yufoFgWJq44te6PLFr1zsyZ/ICDgvu9ykWQUe
ltVQRnhM22GPGmLv6KXYySLQGFyOz51idDuExq1FuF1rLwiZk2VZvy36N0Y0lcIR
VjYTDR7klOGpIeEtnnKrHo2MSMWko/z099WOU9d0Lh8h1QT6WFuS22Kj+UZN9fo5
yWNH/c8ME1f8NByodDNt+xdEZCv7lmGODi+osiQsyTm9J9+YH7aWJqP4q+5s4TFa
mEobuu9zAbqWuehYD5qxfDPLxlRtOeByYHFU+O6/8K0Rsmb0yeSi47q6nS/Sv25/
ftrxe2bjOuaVPHEyYpgnxA4=
-----END CERTIFICATE-----

这是证书。有没有办法在javascript中做到这一点 谢谢 -k

【问题讨论】:

  • 您最好只使用 PGP 加密库...但是是的,您还需要付出一些努力。到目前为止你有没有尝试过?
  • 如果空格无关:$.grep(Object.values(Resource), Boolean).join("");

标签: javascript angularjs


【解决方案1】:

Object.keys 抓取散列中的所有键,您可以 .map() 将所有键映射到您个人定义的函数

var someString =""
var resource = {0: "-", 1: "-", 2: "-", 3: "-",  4: "-", 5: "B", 6: "E", 7: 
"G", 8: "I", 9: "N", 10: " ", 11: "C", 12: "E", 13: "R", 14: "T", 15: "I" }
Object.keys(a).map(function(item){ 
    someString = someString + resource[item]
})
someString;

【讨论】:

    【解决方案2】:

    您可以将对象分配给一个数组并将其连接为一个字符串。

    var resource = { 0: "-", 1: "-", 2: "-", 3: "-",  4: "-", 5: "B", 6: "E", 7: "G", 8: "I", 9: "N", 10: " ", 11: "C", 12: "E", 13: "R", 14: "T", 15: "I" },
        string = Object.assign([], resource).join('');
    
    console.log(string);

    【讨论】:

      【解决方案3】:

      您的字符对象已经几乎是一个数组。它具有数字索引,但缺少 .length 属性。如果添加它,它将是一个“类似数组”的对象,然后可以将其传递给Array.from 以获得正确的数组。

      一旦你有了一个真正的数组,你需要做的就是重建字符串使用空字符串加入数组:

      const obj = {0: "-", 1: "-", 2: "-", 3: "-",  4: "-", 5: "B", 6: "E", 7: "G", 8: "I", 9: "N", 10: " ", 11: "C", 12: "E", 13: "R", 14: "T", 15: "I"};
      
      // Needs a length key to turn it into an "array-like":
      obj.length = Object.keys(obj).length;
      console.log(Array.from(obj).join(""));

      【讨论】:

      • 太棒了!太感谢了。这正是我想要的。非常感谢。
      • 您好。 “from”方法在 IE 上不起作用。有没有其他适用于所有浏览器的方法?
      猜你喜欢
      • 2021-02-03
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多