将多个数组元素从一个数组位置移动到另一个数组

时间:2018-04-21 04:45:54

标签: javascript arrays

我需要将一系列项目中的四个项目移动到前四个位置。

假设我有以下数组:

var countryList=['Afghanistan','Albania', 'Argentina', 'Australia', 'Bangladesh', 'Belgium','Brazil',...]

我需要在前四个位置移动阿根廷,澳大利亚,比利时和巴西。修改后的数组应如下所示:

var modifiedCountryList=['Argentina', 'Australia','Belgium', 'Brazil', 'Afghanistan', 'Albania', 'Bangladesh', ...]

我找到了答案here,但它是针对单个数组元素的位置移动。

看起来很简单,但我无法绕过它。

5 个答案:

答案 0 :(得分:2)

您可以array#concat两个阵列。使用Set获取元素并将它们放在数组中。

注意:使用Set将删除结果数组中的重复元素(如果有)。

const countryList=['Afghanistan','Albania', 'Argentina', 'Australia', 'Bangladesh', 'Belgium','Brazil'],
    first = ['Argentina', 'Australia','Belgium', 'Brazil'],
    result = [...new Set([].concat(first, countryList))];
console.log(result);

答案 1 :(得分:1)

只需先创建一个包含所需国家/地区的新数组,然后.filter输出第一个数组中匹配的元素:

const countryList1 = ['Afghanistan','Albania', 'Argentina', 'Australia', 'Bangladesh', 'Belgium','Brazil'];
const countriesInFirst = ['Argentina', 'Australia','Belgium', 'Brazil'];

const countryList2 = [
  ...countriesInFirst,
  ...countryList1.filter(country => !countriesInFirst.includes(country))
];
console.log(countryList2);

答案 2 :(得分:1)



var countryList=['Afghanistan','Albania', 'Argentina', 'Australia', 'Bangladesh', 'Belgium','Brazil'];

var filterArray = ["Argentina","Australia","Belgium","Brazil"];

var result = [...filterArray,...countryList].filter((v, i, a) => a.indexOf(v) === i);

console.log(result);




答案 3 :(得分:1)

简单地说,从国家/地区列表中排除第一个国家/地区,然后将已过滤的列表连接到第一个国家'列表:



odoo-bin scaffold openacademy addons




答案 4 :(得分:1)

使用您期望的输出创建一个新数组。另外,我建议使用indexOf代替includes,因为includes会在IE浏览器中出错。您还可以使用spread syntax ...将数组元素添加到新数组中。



const countryList1 = ['Afghanistan','Albania', 'Argentina', 'Australia', 'Bangladesh', 'Belgium','Brazil'];
const countriesInFirst = ['Argentina', 'Australia','Belgium', 'Brazil'];

const countryList2 = [
  ...countriesInFirst,
  ...countryList1.filter(country => countriesInFirst.indexOf(country) === -1)
];
console.log(countryList2);




  IE浏览器不支持

includes()https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Browser_compatibility