我正在尝试使用slice()
方法从数组中选择项目,但未选择正确的值。
var alphabets = ["A", "B", "C", "D", "E"];
var show = alphabets.slice(1, 2);
console.log(` ${show} `);
它应该输出 B,D ,但只给出: B
从零开始的数组 B 为1,从结束的数组 D 为1
var alphabets = ["A", "B", "C", "D", "E"];
var show = alphabets.slice(1, 3);
console.log(` ${show} `);
以上代码输出: B,C
如何甚至选择元素?
答案 0 :(得分:3)
slice()方法选择从给定的起始参数开始的元素,并以但不包括给定的结束参数结束。
var alphabets = ["A", "B", "C", "D", "E"];
var show = alphabets.slice(1, 3);
console.log(` ${show} `);
以您的示例为例,“ D”在位置3处,因此在输出中将不包括“ D”。只会在输出中显示“ B”和“ C”。
答案 1 :(得分:2)
let options = [{value: 'b', label: "test1"},{value: 'a', label: "test12"},{value: 'c', label: "test123"}];
let ranks = [{rank: 1, value: "a"},{rank: 2, value: "b"},{rank: 3, value: "c"}];
let temp = ranks.reduce((a,c) => Object.assign(a,{[c.value]:c.rank}), {});
options.sort((a,b) => temp[a.value] - temp[b.value]);
console.log(options);
方法将数组的一部分的浅表副本返回到从开始到结束(不包括end)选择的新数组对象中。原始数组将不会被修改。
slice()
开始可选
从零开始的索引,开始提取。
结束可选
从零开始的索引,在此索引之前终止提取。切片最多提取但不包括末端。
arr.slice([begin[, end]])
如果您对JavaScript有疑问,Mozilla开发人员网络(MDN)是一个不错的选择。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
答案 2 :(得分:1)
这是切片的工作原理: 切片(开始,结束) start是起始索引,从0开始。 end是结束索引,但不包括
在您的情况下:
因此,slice(1,2)将仅返回索引“ 1”,即B
答案 3 :(得分:0)
由于您没有正确使用第二个参数,请参阅Array.prototype.slice的文档。
slice()方法返回数组一部分的浅表副本 放入从头到尾选择的新数组对象中(不包括结尾)。 原始数组不会被修改
答案 4 :(得分:0)
slice()
方法以数组形式返回数组中选定的元素。 新的数组对象。
slice()
方法选择从给定开始处开始的元素 参数,并以给定的end参数结尾,但不包括该参数。
请参见以下具有相同数组的示例。
var alphabets = ["A", "B", "C", "D", "E"];
console.log(alphabets .slice(2));
// expected output: Array ["C", "D", "E"]
console.log(alphabets .slice(2, 4));
// expected output: Array ["C", "D"]
console.log(alphabets .slice(1, 5));
// expected output: Array ["B", "C", "D", "E"]
答案 5 :(得分:0)
slice()返回从第一个索引开始直到第二个索引(不包含)的数组副本。如果要从第二个值的末尾开始计数,则必须使用负索引。
var alphabets = ["A", "B", "C", "D", "E"];
var show = alphabets.slice(1, 3);
console.log(` ${show} `);
这将显示BC
以及:
var alphabets = ["A", "B", "C", "D", "E"];
var show = alphabets.slice(1, -2);
console.log(` ${show} `);