2013-03-21 26 views
0

我新来js和我无法解决这个问题。试图解决js koan/about_array.js

test("splice", function() { 
    var daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; 
    var workingWeek = daysOfWeek.splice(__); 
    ok(workingWeek.equalTo([__]), 'what is the value of workingWeek?'); 
    ok(daysOfWeek.equalTo([__]), 'what is the value of daysOfWeek?'); 
}); 

我的尝试在下面,但它不工作。

test("splice", function() { 
    var daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; 
    var workingWeek = daysOfWeek.splice(5,6); 
    ok(workingWeek.equalTo([5]), 'what is the value of workingWeek?'); 
    ok(daysOfWeek.equalTo([2]), 'what is the value of daysOfWeek?'); 
}); 

有人能给我提供任何线索吗?

+0

你知道什么['splice'方法](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice)呢?你知道'[5]'是一个数组,只有一个数字吗? – Bergi 2013-03-21 17:57:40

+0

你想做什么? – ckersch 2013-03-21 17:58:10

+0

可能的来源:https://github.com/liammclennan/JavaScript-Koans/blob/master/topics/about_arrays.js – 2013-03-21 18:02:08

回答

0

the docs

[该] Arraysplice方法

array.splice(index, howMany, […])

改变阵列的内容,增加新的元件,同时除去旧元素

返回[...]包含已删除元素的数组。

因此,您当前的代码将从第6个开始(索引5,即'Saturday')删除6个元素。这有点太过分了,只删除2就足够了,尽管它在这里没有任何区别 - 它们在数组的末尾。

你proably想达到什么是

ok(workingWeek.equalTo(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']), 'what is the value of workingWeek?'); 
// though it makes no practical sense, you are using splice(): 
ok(daysOfWeek.equalTo(['Saturday', 'Sunday']), 'what is the value of daysOfWeek?'); 

我会离开这个任务上改变参数你splice(…)电话给你:-)