Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从2d数组javascript中提取最后一个元素_Javascript_Arrays - Fatal编程技术网

从2d数组javascript中提取最后一个元素

从2d数组javascript中提取最后一个元素,javascript,arrays,Javascript,Arrays,好的,我正在尝试用JavaScript创建一个非常基本的机器翻译程序,作为一个学习项目。我把句子分成二维数组 function string2TwoD(sentence){ var periodless = sentence.replace(/^[.\s]+|[.\s]+$/g, ""); var splitSen = periodless.split(" "); splitArray = []; var i; for (i = 0; i < spl

好的,我正在尝试用JavaScript创建一个非常基本的机器翻译程序,作为一个学习项目。我把句子分成二维数组

function string2TwoD(sentence){
    var periodless = sentence.replace(/^[.\s]+|[.\s]+$/g, "");
    var splitSen = periodless.split(" ");
    splitArray = [];
    var i;
    for (i = 0; i < splitSen.length; i++){
        splitArray[i] = splitSen[i].split("");
    }
    return splitArray;
}
函数string2TwoD(句子){
var periodless=句子。替换(/^[.\s]+|[.\s]+$/g,“”;
var splitSen=periodless.split(“”);
splitArray=[];
var i;
对于(i=0;i
现在,我试图从每一个二级数组中提取最后一个字母,并将它们粘贴到另一个数组中,以便以后使用。 到目前为止我唯一想到的是

var workWith = sting2TwoD("This here is a sentence boy.");
var completeSen = string2TwoD("This here is a sentence boy.");
var i;
var popped = [];
    for (i = 0; i < workwith.length; i++){
        popped += workwith[i].pop();
    }
var poppedArray = popped.split("");
console.log(poppedArray);
console.log(completeSen);
var-workWith=sting2TwoD(“这是一个句子男孩”);
var completeSen=string2TwoD(“这是一个句子男孩”);
var i;
var popped=[];
对于(i=0;i
对于我来说,这似乎是一个糟糕的解决方案,因为我被迫创建原始数组的第二个副本,只是为了保留string2TwoD函数的原始值。必须有更好的方法来访问二级数组的结束值(在许多情况下,我需要数组的最后两个元素,因为我实际上是在尝试提取形容词结尾(这将从德语翻译成英语))。我尝试过使用多个for循环,但似乎无法让它提取正确的值。有什么建议吗?原谅我,我是诺布。

的确

您可以使用以下命令访问任何JS数组的最后一个值:

arrayName[arrayName.length-1]
的确

您可以使用以下命令访问任何JS数组的最后一个值:

arrayName[arrayName.length-1]

您可以将问题设为1D:

myString.slice(0,-1)
将删除字符串的最后一个字符,因此不需要将字符串转换为数组。参见其文档(正指数:我们从一开始计算,负指数:我们从一开始计算)

然后,为了美观起见,您应该将上面的函数映射到1D数组(这意味着您自动将函数应用于表的每个元素,并用返回值替换其值):

/*步骤1:标准化,在某些web浏览器上,array.prototype.map函数可能不存在*/
if(!Array.prototype.map)
{
Array.prototype.map=函数(fun/*,thisp*/)
{
var len=此长度;
如果(乐趣的类型!=“功能”)
抛出新的TypeError();
var res=新阵列(len);
var thisp=参数[1];
对于(变量i=0;i
您可以将问题设为1D:

myString.slice(0,-1)
将删除字符串的最后一个字符,因此不需要将字符串转换为数组。参见其文档(正指数:我们从一开始计算,负指数:我们从一开始计算)

然后,为了美观起见,您应该将上面的函数映射到1D数组(这意味着您自动将函数应用于表的每个元素,并用返回值替换其值):

/*步骤1:标准化,在某些web浏览器上,array.prototype.map函数可能不存在*/
if(!Array.prototype.map)
{
Array.prototype.map=函数(fun/*,thisp*/)
{
var len=此长度;
如果(乐趣的类型!=“功能”)
抛出新的TypeError();
var res=新阵列(len);
var thisp=参数[1];
对于(变量i=0;i
使用
数组处理
并将最后一个元素推送到新数组

var arr = [];
for (var i = 0, l = workWith.length; i < l; i++) {
  arr.push(workWith[i][workWith[i].length - 1]);
}
console.log(arr);
var arr=[];
for(var i=0,l=workWith.length;i
使用
数组处理
并将最后一个元素推送到新数组

var arr = [];
for (var i = 0, l = workWith.length; i < l; i++) {
  arr.push(workWith[i][workWith[i].length - 1]);
}
console.log(arr);
var arr=[];
for(var i=0,l=workWith.length;i
您不需要使用
来实现此目标:

var item;
var lastChars = [];
var completeSen = string2TwoD("This here is a sentence boy.");
for (var i = 0, l = completeSen.length; i < l; i++) {
    item = completeSen[i];
    lastChars.push(item[item.length - 1]);
}
console.log(lastChars);
console.log(completeSen);
var项目;
var lastChars=[];
var completeSen=string2TwoD(“这是一个句子男孩”);
对于(变量i=0,l=completeSen.length;i
您不需要使用
来实现此目标:

var item;
var lastChars = [];
var completeSen = string2TwoD("This here is a sentence boy.");
for (var i = 0, l = completeSen.length; i < l; i++) {
    item = completeSen[i];
    lastChars.push(item[item.length - 1]);
}
console.log(lastChars);
console.log(completeSen);
var项目;
var lastChars=[];
var completeSen=string2TwoD(“这是一个句子男孩”);
对于(变量i=0,l=completeSen.length;i
这一个对我来说很好,我很容易理解,它仍然允许我保留我的2d数组,我打算在以后让程序执行实际翻译时再次使用它。这一个对我来说很好,我很容易理解,它仍然允许我保留我的2d数组,我打算在以后有程序时再次使用它执行实际的翻译。我不确定我是否正确使用了它。我只是把这个句子的最后一个字母/单词砍掉了。另外,当我尝试将函数映射到splitSen而不是直接应用它时,它只返回了一堆未定义的值……我不确定我是否正确使用了它。我只是把这个句子的最后一个字母/单词砍掉了。另外,当我尝试将函数映射到splitSen而不是直接应用它时,它只返回一堆未定义的值。。。