美文网首页
数组元素调整

数组元素调整

作者: funcx | 来源:发表于2019-11-14 11:43 被阅读0次
package xs

import "reflect"

//flag:true->删除元素,false->保留元素
func adjustElem(xs interface{}, flag bool, f interface{}) {
    resultv := reflect.ValueOf(xs)
    slicev := resultv.Elem()
    for i := slicev.Len() - 1; i >= 0; i-- {
        if reflect.ValueOf(f).Call([]reflect.Value{slicev.Index(i)})[0].Bool() == flag {
            slicev = reflect.AppendSlice(slicev.Slice(0, i), slicev.Slice(i+1, slicev.Len()))
        }
    }
    resultv.Elem().Set(slicev)
}

func RemoveElem(xs interface{}, f interface{}) {
    adjustElem(xs, true, f)
}

func RetainElem(xs interface{}, f interface{}) {
    adjustElem(xs, false, f)
}


func Contains(xs interface{}, elem interface{}) {

}

func ContainsFunc(xs interface{}, f interface{}) bool {
    slicev := reflect.ValueOf(xs)
    for i := 0; i < slicev.Len(); i++ {
        if reflect.ValueOf(f).Call([]reflect.Value{slicev.Index(i)})[0].Bool() {
            return true
        }
    }
    return false
}

相关文章

  • 数组元素调整

  • 最小向量积

    调整数组元素的位置使得两数组向量积最小 问题描述: 有长度为n的数组a,b,问如何调整数组内元素的位置使得 最小...

  • 堆排序代码

    include //array是待调整的堆数组,i是待调整的数组元素的位置,nlength是数...

  • JS 数组元素上移、下移、置顶、置底、互换

    数组元素上移 数组元素下移 数组元素置顶 数组元素置底 数组元素交换

  • 【python】数组的定位排序?

    题目:给定一个数组A以及下标i,将数组元素进行调整,使得所有比A[i]小的元素排在前面,接着是所有等于A[i]的元...

  • ArrayList和LinkedList

    ArrayList是使用数组实现的,若要从数组中删除或插入某一个对象,需要移动后段的数组元素,从而会重新调整索引顺...

  • 调整数组奇偶数的位置

    给定一个数组调整数组元素的顺序,使奇数全在数组前半部分;偶数全在数组后半部分。 思路: 快排双指针思维,left,...

  • Rreact Native/JS 数组添加/删除/替换元素 合并

    数组添加元素 数组删除元素 数组替换元素 数组合并 查找元素在数组中的位置 将数组内所有元素按指定字符拼接成字符串

  • Swift学习之数组、集合和字典

    [toc] 数组 初始化一个数组 增加数组元素 读取数组元素 修改数组元素 删除数组元素 数组遍历 集合 集合类型...

  • shell笔记19(数组)

    定义数组: array = $()定义数组 数组长度: 显示数组元素: 显示所有元素: 删除元素与覆盖: ...

网友评论

      本文标题:数组元素调整

      本文链接:https://www.haomeiwen.com/subject/mhfrictx.html