为什么我的数组返回空?

时间:2017-09-13 19:54:20

标签: javascript arrays

var array= ["a", "b", "c", "d"]
var finalArray= array.slice(2,2);
console.log(finalArray);

返回:

finalArray=[]

我希望它返回:

finalArray=["c","d"]

4 个答案:

答案 0 :(得分:2)

第一个参数是开始提取的索引,第二个参数是结束提取的索引 之前的索引。因此,要获得最后两个元素(索引2和3),您需要这样做:

Array.prototype.slice()

(command ".undefine" "naviswheel") 中提供了有关/company/513092-1/jk-servicemontage-ab /company/515413-1/energi-o-inneklimat-i-norrkoping-ab 的更多信息。

答案 1 :(得分:1)

改为void Update () { clickTimer -= Time.deltaTime; if(clickTimer <= 0){ if(Input.GetMouseButtonDown(0)) { //What point was pressed Vector3 worldPoint = Camera.main.ScreenToWorldPoint( Input.mousePosition ); worldPoint.z = Camera.main.transform.position.z; //Generate a Ray from the position you clicked in the screen Ray ray = new Ray( worldPoint, new Vector3( 0, 0, 1 ) ); //Cast the ray to hit elements in your scene RaycastHit2D hit = Physics2D.GetRayIntersection( ray ); if(hit.collider != null) { Debug.Log("I hit: "+hit.gameObject.tag); //And here you can check what GameObject was hit if(hit.gameObject.tag == "AnyTag"){ //Here you can do whatever you need for AnyTag objects } } } clickTimer = 2f; } } 。 slice()方法将数组的一部分的浅表副本返回到从头到尾选择的新数组对象(不包括结束)。原始数组不会被修改。-MDN

答案 2 :(得分:0)

您需要在Array#slice方法中提供结束索引作为第二个参数。你得到一个空数组,因为你提供的开始和结束索引都是相同的(中间没有元素)。

var array = ["a", "b", "c", "d"]
var finalArray = array.slice(2, 4);
console.log(finalArray);

仅供参考:如果您想从起始索引获取整个元素,请忽略第二个参数。

var array = ["a", "b", "c", "d"]
var finalArray = array.slice(2);
console.log(finalArray);

答案 3 :(得分:-2)

第二个索引(结尾)必须是你希望结尾从0开始的+1。所以如果你想要元素2和3(总是从0开始),请这样做:

return array.slice(2, 4);