【问题标题】:JavaScript: Convert string to arrayJavaScript:将字符串转换为数组
【发布时间】:2018-12-12 06:43:58
【问题描述】:

我有一个数组:

itemSku = ["MY_SERVICE","SKU_A","SKU_B"];

现在我将这个值传递给 Angular 中的一个组件。在那里我检查了 itemSku 的类型,它返回了一个字符串,所以我无法对此执行数组操作。

console.log(typeof itemSku);
*string*

如何将其转换回数组?我不允许使用 jquery,但可以使用 Javascript、Ramda 或 Lodash

【问题讨论】:

  • Angular 不只是神奇地将数组转换为字符串。显示您的代码。
  • typeof [] 你试过这个吗?它记录object。问题似乎不清楚。
  • @Jai 没错!我试过了,pkdq 描述性更强一点?

标签: javascript angularjs lodash ramda.js


【解决方案1】:

您可以使用 JSON.parse(itemSKu) 将其转换回数组

【讨论】:

  • 应该是评论。
  • @Jai 为什么?这似乎是一个合理的答案。当然,它可以改进,但它会受到影响,因为 question 似乎缺少信息,但它确实试图回答它。
  • @vlaz 当然。但是在一条线上回答,甚至没有询问其他问题是什么,按照 SO 标准直接抛出答案并不好。如果一个人有一个班轮最好将其添加为评论。然而我评论只是为了让她改进。
  • @Jai 似乎代表
【解决方案2】:

我们肯定需要更多的上下文来回答这个问题。但是,知道在某些情况下可以将数组转换为字符串可能会很有用,而且您可能会不小心将自己置于这种情况:

请注意,用于加入数组的默认字符是逗号,

var a = ['foo', 'bar'];

console.log(a.toString());
console.log(a + '');
console.log('' + a);
console.log(a.join());
console.log(String(a));

要从中恢复,您实际上并不需要 Ramda,您可以使用纯 JavaScript 来完成:

var b = 'foo,bar';
var a = b.split(',');

console.log(a);

如果你真的想要 Ramda,R.split 会做类似的工作:

var splitByComma = R.split(',');
var a = splitByComma('foo,bar');
console.log(a);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>

参考文献

  1. String.prototype.split
  2. R.split

【讨论】:

    【解决方案3】:

    试试这个:

    let result = itemSku.split(",");
    

    【讨论】:

    • 是的。您实际上可以直接使用 temp 。将 temp 复制到 result 没有意义。
    猜你喜欢
    • 2022-01-23
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2013-02-12
    • 2022-11-29
    相关资源
    最近更新 更多