zoukankan      html  css  js  c++  java
  • ruby中的数组相关方法介绍

    l = ["a","b","c","d","e","f",'g']
    
    
    puts l.values_at(2,3,4,6)
    # 获取index为2、3、4、6的元素
    #
    #
    l1 = ["a","b","c","d","e","f",'g']
    l2 =  ["a","b","c","d",1,2,3]
    
    
    l = l1 & l2
    # 取交集
    
    puts l
    
    l = l1 | l2
    # 取并集
    puts l
    
    l = l1 - l2
    # 获取在l1中,但是不是在l2中的元素
    
    puts l
    
    
    l = l1 + l2
    # 获取l1和l2两个集合中的合集,这个是两个集合的简单相加,会有重复元素
    puts l
    
    
    puts "=" * 100
    l = ["a","b","c","d",1,2,3]
    
    l.unshift("0")
    # 在数组头部追加一个元素
    puts l
    
    
    puts "=" * 100
    l = ["a","b","c","d",1,2,3]
    l.push(4)
    # 在数组尾部追加一个元素
    #
    #
    l<< 5
    # 在数组尾部追加一个元素
    puts l
    
    puts "=" * 100
    l = ["a","b","c","d",1,2,3]
    
    a = l.shift
    # 从头部删除一个元素,同时可以接受到删除的元素
    puts l
    puts a
    
    
    puts "=" * 100
    l = ["a","b","c","d",1,2,4]
    
    a = l.pop
    # 从数组的尾部删除一个元素,同时可以接受到删除的的元素
    
    puts l
    
    puts a
    
    
    
    puts "=" * 100
    l = ["a","b","c","d",1,2,4]
    
    puts l.first
    # 获取头部第一个元素
    puts l.last
    # 获取尾部第一个元素
    #
    #
    #
    #
    puts "=" * 100
    l1 = ["a","b","c","d","e"]
    l2 = [1,2,3,"a"]
    
    l1.concat(l2)
    # 连接l1和l2,把l2追加到l1的后面,这个操作会重新赋值l1
    
    puts l1
    
    
    puts "=" * 100
    l = [1,2,3,4,1,"a","b"]
    
    l.delete(1)
    # 删除数组中的指定元素
    puts l
    
    
    
    puts "=" * 100
    l = [1,2,3,4,1,"a","b"]
    
    l.delete_at(2)
    # 删除数组中索引为2的元素
    puts l
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    l.delete_if {|i| i > 2 }
    # 删除数组中大于2的元素
    
    puts l
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    l = l.reject {|i| i > 2 }
    # 删除数组中大于2的元素,把删除后的元素赋值给一个新的数组,原来的数组不影响
    puts l
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    l.reject! {|i| i > 2 }
    # 删除数组中大于2的元素,把删除后的元素赋值给原数组
    puts l
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.slice(1,3)
    # 删除索引为1到3的元素,并把删除的元素赋值给新的数组,对原数组无影响
    puts m
    
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.slice!(1,3)
    # 删除索引为1到3的元素,并把删除的元素赋值给新的数组,对原数组有影响
    puts l
    
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.uniq
    # 移除数组中的重复元素,并把移除重复元素后的数组赋值给一个新的数组,对原数组无影响
    # puts m
    puts l
    
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.uniq!
    # 移除数组中的重复元素,并把移除重复元素后的数组赋值给一个新的数组,对原数组有影响
    puts m
    puts l
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    
    m =  l.reverse
    # 翻转数组,对原数组无影响,翻转后的数组赋值给新的数组
    puts l
    puts m
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    
    m =  l.reverse!
    # 翻转数组,对原数组有影响,翻转后的数组赋值给新的数组
    puts m
    puts l
    
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m =  l.collect {|item| item * 2 }
    
    # 对原数组中的每个元素执行块中的运算,把计算后的元素赋值给一个新的元素,对原数组无影响
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m =  l.collect! {|item| item * 2 }
    # 对原数组中的每个元素执行块中的运算,把计算后的元素赋值给一个新的元素,对原数组有影响
    #
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.map {|item| item + 100 }
    
    # 效果同collect
    
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    m = l.map! {|item| item + 100 }
    
    # 效果同collect!
    puts "=" * 100
    l = [1,2,3,4,1,6,7]
    
    l.fill(2)
    # 替换数组中的所有元素为2
    puts l
    
    
    puts "=" * 100
    l = [1,2,"a","a",1,6,7]
    
    l.fill(3,3)
    # 替换数组索引从3开始都尾部的所有的元素为3
    
    puts l
    
    
    puts "=" * 100
    l = [1,2,"a","a",1,6,7]
    
    l.fill(100,3,6)
    # 替换数组索引从3开始到6结束的所有的元素为3
    puts l
    
    
    puts "=" * 100
    l = [1,2,"a","a",[1,1,2,["c","c","d"]]]
    l.flatten
    # 展开嵌套的数组,对原数组无影响,展开后的数组会赋值给一个新的数组
    
    puts "=" * 100
    l = [1,2,"a","a",[1,1,2,["c","c","d"]]]
    l.flatten!
    # 展开嵌套的数组,对原数组有影响
    #
    #
    #
    
    puts "=" * 100
    l = [1,2,0,100,1,6,7]
    
    m = l.sort
    # 对数组进行排序,不影响原数组
    puts m
    
    puts "=" * 100
    l = [1,2,0,100,1,6,7]
    
    m = l.sort!
    # 对数组进行排序,影响原数组
    puts m
    
    
    puts "=" * 100
    l = [1,2,0,100,1,6,7]
    
    m = l.sort_by{|i| -i}
    # 对数组进行指定方法的排序,对原数组无影响
    puts m
    
    
    puts "=" * 100
    l = [1,2,0,100,1,6,7]
    
    m = l.sort_by!{|i| -i}
    # 对数组进行指定方法的排序,对原数组影响
    puts m
    
    l1 = ["a","b","c"]
    
    l2 = ["A","B","C"]
    
    l3 = ["x","y","z"]
    
    r = l1.zip(l2,l3)
    
    r.each do |i|
      
      puts i
    end
    
  • 相关阅读:
    Atitit.安全性方案规划设计4gm  v1 q928
    Atitit ati licenseService    设计原理
    Atitit.js图表控件总结
    Atitit. null错误的设计 使用Optional来处理null
    System.Web.Mvc 命名空间
    provider: SQL Network Interfaces, error: 26 Error Locating Server/Instance Specified
    Visual Studio 2010 实用功能总结
    My First J2ME
    Java开发利器ideaIU最新版本10.5的keygen
    Happy New Year for 2012
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/11378169.html
Copyright © 2011-2022 走看看