【问题标题】:How do I concat a string and an int and find its value in an array? [duplicate]如何连接字符串和 int 并在数组中找到它的值? [复制]
【发布时间】:2020-11-04 23:31:54
【问题描述】:

请参阅下面的最终代码库。我最初尝试将数组用作对象的方法是不正确的。

我正在尝试连接字符串和 int 以查找数组 arr 中的特定项目。当前代码库控制台日志undefined

谁能解释为什么undefined 被控制台记录?

有问题的代码库:

const a = "T";
const b = 2;
const c = a + b;

let arr = [
        T0: 0,
        T1: 1,
        T2: 1
    ];

console.log(arr.find(e => e == c));

谢谢。

更多细节(无需阅读):

我正在尝试编写代码以在输入n 时为第 n 个 Tribonacci 数提供答案。

伪代码:

var tribonacci = function(n) {
  
    let arr = [
        T0 = 0;
        T1 = 1;
        T2 = 1;
    };
    
    for (i = 0; i < n + 1; i++) {
        let ("T" + (i + 3)) = ("T" + i) + ("T" + (i + 1)) + ("T" + (i + 2))
        arr.push("T" + (i + 3));
    }
    
    return arr.find(e => e == ("T" + (n + 3));

最终代码库:

谢谢大家的反馈。

  1. 我删除了数组中的“值”,因为没有键和值数组。
  2. 我删除了.find() 方法并添加了一种更简单的方法来通过arr[n] 查找n
var tribonacci = function(n) {
  
    let arr = [0, 1, 1];
    
    for (i = 0; i < n - 2; i++) {
        let add = arr[i] + arr[i + 1] + arr[i + 2]
        arr.push(add);
    }
    
    return arr[n]
};

【问题讨论】:

  • 数组不包含字符串,只包含整数。
  • let arr = [ T0 = 0, T1 = 1, T2 = 1 ]; 是奇怪的语法,它只是创建了一个数组 [0,1,1] 并创建了 3 个与数组无关的全局变量 T0、T1 和 T2 - 我认为您需要进修 Javascript 课程语法
  • 您还会看到let ("T" + (i + 3)) =这一行的错误
  • 我刚刚得到它。他不希望数组包含字符串,他希望 c 包含 T2 的值。
  • 您至少需要了解该语言的基础知识。您正在使用不存在的语法。

标签: javascript arrays find push concat


【解决方案1】:

也许这段代码会有所帮助(我可能会在索引上落后一个,但你可以解决这个问题)

var tribonacci = function(n) {
    let arr = [0, 1, 1];
    for (i = 2; i < n; i++) {
        arr.push(arr.slice(-3).reduce((a,b) => a+b));
    }
    return arr[n];
};
console.log(tribonacci(1))
console.log(tribonacci(2))
console.log(tribonacci(3))
console.log(tribonacci(4))
console.log(tribonacci(7))
console.log(tribonacci(14))

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2011-10-22
    • 2014-03-08
    相关资源
    最近更新 更多