【问题标题】:Split and sort this array拆分和排序这个数组
【发布时间】:2017-03-13 15:31:51
【问题描述】:

我需要帮助编写一个脚本,该脚本将采用以下数组 ['James',1,'sam', 16,84,'mason',197] 并将所有数字放入数字 array 并将所有名称放入名称 array。每个数组都是有序的。

输出:数字[1,16,84,197] 姓名 ['james','sam','mason']

【问题讨论】:

标签: javascript arrays string split numbers


【解决方案1】:

由于您没有指定编程语言,我推荐使用 python,因为它是最容易做到这一点的语言。另外我认为 16,84 实际上是 16.84 的浮点数。此外,这仅适用于数组格式为 [..., name, number, ...]

a = ['james', 1, 'sam', 16.84, 'mason', 197]
names = []
numbers = []
for i in range(len(a)//2):
    names += [a[i*2]]
    numbers += [a[i*2+1]]

其中a[i*2] 是当前名称,a[i*2+1] 是当前号码。

【讨论】:

  • 我认为编程语言不像欧洲国家那样使用逗号作为小数分隔符。 16,84 是用逗号分隔的两个整数。
【解决方案2】:

使用 Python 我会执行以下操作:

array = ['james',1,'sam', 16, 84,'mason',197]
names = [s for s in array if isinstance(s, basestring)]
numbers = [i for i in array if isinstance(i, int)]

我猜列表中的所有数字都是整数。如果您有任何类型的数字(int、long、float、...),您可以执行以下操作:

numbers = [i for i in array if isinstance(i, (int, long, float, complex))]

【讨论】:

    【解决方案3】:
    var name = [], numbers = [];
    var array = ['james',1,'sam', 16, 84,'mason',197];
    
    array.forEach(function(item){
     isNaN(item) ? name.push(item) : numbers.push(item);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多