js改变数组的两个元素的位子,互换、置顶

//js数组的元素上移和下移动

var fieldData=[

      {name:'id',value:'ID'}

    , {name:'username',value:'用户名'}

    , {name:'email',value:'邮箱'}

    , {name:'sex',value:'性别'}

    , {name:'city',value:'城市'}

    , {name:'sign',value:'签名'}

    , {name:'experience',value:'积分'}

    , {name:'ip',value:'IP'}

    , {name:'logins',value:'登入次数'}

    , {name:'joinTime',value:'加入时间'}

];

var index=9;

须知:

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

三种方法都会改变数组

1:两个元素换位子;

function swapArr(arr, index1, index2) {
    arr[index1] = arr.splice(index2, 1, arr[index1])[0];
    return arr;
}

2:置顶移动

function toFirst(fieldData,index) {

    if(index!=0){

        // fieldData[index] = fieldData.splice(0, 1, fieldData[index])[0]; 这种方法是与另一个元素交换了位子,

        fieldData.unshift(fieldData.splice(index , 1)[0]);

    }

}

 

3:up 上移动一格

function upGo(fieldData,index){

    if(index!=0){

        fieldData[index] = fieldData.splice(index-1, 1, fieldData[index])[0];

    }else{

        fieldData.push(fieldData.shift());

    }

}

4:down 下移动一格

function downGo(fieldData,index) {

    if(index!=fieldData.length-1){

        fieldData[index] = fieldData.splice(index+1, 1, fieldData[index])[0];

    }else{

        fieldData.unshift( fieldData.splice(index,1)[0]);

    }

}

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
可以使用列表解析来实现这个功能,例如: ```python lst = ['hello world', 'python', 'is', 'awesome'] new_lst = [x for y in lst for x in y.split(' ', 1)] print(new_lst) ``` 输出结果为: ``` ['hello', 'world', 'python', 'is', 'awesome'] ``` 在列表解析中,`for y in lst`会遍历原始列表中的每个元素,即对每个元素进行操作。`y.split(' ', 1)`会将当前元素的第一个单词和后面的部分分割成个元素,返回一个包含个元素的列表。`for x in y.split(' ', 1)`会遍历这个包含个元素的列表,将其中的个元素分别添加到新的列表中。最终得到的新列表中的元素顺序与原始列表中的元素顺序相同。 如果想要直接修改原始列表,可以使用`insert()`方法将新元素插入到原始列表中的指定位置,例如: ```python lst = ['hello world', 'python', 'is', 'awesome'] for i in range(len(lst)): words = lst[i].split(' ', 1) if len(words) > 1: lst.insert(i+1, words[1]) lst[i] = words[0] print(lst) ``` 输出结果为: ``` ['hello', 'world', 'python', 'is', 'awesome'] ``` 在这个例子中,使用`range(len(lst))`来遍历原始列表中的每个元素的下标,即对每个元素进行操作。`lst[i].split(' ', 1)`会将当前元素的第一个单词和后面的部分分割成个元素,返回一个包含个元素的列表。如果当前元素被成功分割成了个元素,则使用`insert()`方法将后面的部分插入到当前元素的后面,然后将当前元素的值修改为第一个单词。最终得到的列表即为所求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跃焱邵隼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值