小编Nic*_*ons的帖子

比较两个对象的属性,但不能正常工作

这是我的代码。我知道这并不完全严格,但是请阐明为什么let ... in在这里无法正常工作。

const object1 = {here: 1, object: 3};
const obj = {here: 1, object: 2};

function comp(a, b) {
  if (typeof a == typeof b) {
    let arra = Object.keys(a);
    let arrb = Object.keys(b);
    for (let key in arra){
      if (a[key] == b[key]) return true
    }
        return false
  }
}

console.log(comp(obj, object1))
Run Code Online (Sandbox Code Playgroud)

以上打印,true但应该打印false

javascript

3
推荐指数
1
解决办法
99
查看次数

为什么函数首先在console.log中执行?

看看这个片段:

let first = 1;

function second() {
  console.log(2);
}

console.log(first, second()); // 2 1
Run Code Online (Sandbox Code Playgroud)

1 2我希望它按顺序打印而不是2 1. 为什么函数second先执行?我观察到,如果两个参数都是console.log函数,则它们传递的顺序将被保留(参见下面的示例)

function first() {
  console.log(1);
}

function second() {
  console.log(2);
}

console.log(first(), second()); // 1 2
Run Code Online (Sandbox Code Playgroud)

请用相关资源解释此行为。

javascript console console.log

3
推荐指数
1
解决办法
1381
查看次数

如何在Javascript中从数组创建树(父子)对象

我有一个像

[
  "parent1|child1|subChild1",
  "parent1|child1|subChild2",
  "parent|child2|subChild1",
  "parent1|child2|subChild2",
  "parent2|child1|subChild1",
  "parent2|child1|subChild2",
  "parent2|child2|subChild1",
.
.
.    
]
Run Code Online (Sandbox Code Playgroud)

其中我之前的第一个字符串|是父级,第二个字符串是 | 是孩子和第二后第三个字符串|是subchild

我怎样才能把这个数组转换成一个对象

[
 {
  "id": "parent1",
  "children":[
   {
    "id": "child1",
    "children":[
     {
      "id": "subChild1"
     }
    ]
   }
  ]
 }
]
Run Code Online (Sandbox Code Playgroud)

父 -> 子 -> 子子对象

基于塞巴斯蒂安的回答,我在下面尝试使用打字稿

private genTree(row) {
        let self = this;
        if (!row) {
            return;
        }
        const [parent, ...children] = row.split('|');
        if (!children || children.length === 0) {
            return [{
                id: parent,
                children: []
            }];
        }
        return [{
            id: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays nested typescript

3
推荐指数
1
解决办法
520
查看次数

为什么输入字段中相同字符串的字符串长度和JS中变量字符串的静态值不同

我在 javascript 中得到两个不同的字符串长度。一个来自输入字段,另一个来自直接 js 字符串值。例如,如果我将输入字段值设置为与 js 变量str2i,e: 中的静态输入相同\u002Funits\u002F0004\u002F62a345b3-ead7-4d06-a65b-243fc54780ec。我得到在控制台不同字符串长度(63和48),用于从变量相同的输入strstr2

var checklen = function() {

  var str = document.getElementById("text").value;

  str = str.trim();


  console.log(str);
  console.log(str.length);


  var str2 = "\u002Funits\u002F0004\u002F62a345b3-ead7-4d06-a65b-243fc54780ec";
  console.log(str2.length);

}
Run Code Online (Sandbox Code Playgroud)
<div id='form'>
  text <input type="text" name="text" id="text" />

  <input type="button" onclick="checklen()" value="check">
</div>
Run Code Online (Sandbox Code Playgroud)

javascript

3
推荐指数
1
解决办法
53
查看次数

如何将一个数组的第一个元素与第二个数组的第一个元素等组合起来

我有两个数组。

第一个数组包含日期

['2020-03-17,2020-03-19,2020-03-18,2020-03-12']
Run Code Online (Sandbox Code Playgroud)

第二个数组包含时间,该数组由两个小时的时间段组成。

['11:00', '13:00','15:00', '17:00','19:00', '21:00', '23:00']
Run Code Online (Sandbox Code Playgroud)

最后,我需要结果如下所示:

['2020-03-17,11:00,13:00','2020-03-19,15:00,17:00','2020-03-18,19:00,21:00']
Run Code Online (Sandbox Code Playgroud)

javascript arrays

3
推荐指数
2
解决办法
2773
查看次数

有人可以帮助我使用这种从某些值拆分数组的算法吗?

我正在尝试自动化我的工作,我正在将一个大数组分解成更小的数组,如下所示:

function splitArray(arr, firstbreak, secondBreak, thirdBreak, fourthBreak) {
  var split1 = arr.slice(0, firstbreak);
  var split2 = arr.slice(firstbreak, firstbreak + secondBreak);
  var split3 = arr.slice(firstbreak + secondBreak, firstbreak + secondBreak + thirdBreak);
  var split4 = arr.slice(firstbreak + secondBreak + thirdBreak, firstbreak + secondBreak + thirdBreak + fourthBreak);

  console.log(split1); //[1,2,3]
  console.log(split2); //[4,5,6,7]
  console.log(split3); //[8]
  console.log(split4); //[9,10]
}


splitArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 4, 3, 1, 2)
Run Code Online (Sandbox Code Playgroud)

我怎样才能自动化这个?我尝试了一个 for 循环,但有点卡住了我似乎无法获得重复的公式......

javascript arrays algorithm automation split

3
推荐指数
1
解决办法
93
查看次数

如何在 JavaScript 中反转二叉树?

我怎样才能翻转二叉树?我最近遇到了这个问题,我所有的尝试都失败了。初始树如下所示。

     4
   /   \
  2     7
 / \   / \
1   3 6   9

     4
   /   \
  7     2
 / \   / \
9   6 3   1
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */
var invertTree = …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm binary tree

3
推荐指数
1
解决办法
1万
查看次数

无法理解 freeCodeCamp 中的 JS 递归倒计时函数

所以,我已经理解了JavaScript 中递归的概念(有一个函数可以循环自身,直到达到基本条件,此时它停止并返回最终结果),但我有一点当我将其应用到尝试应用它来创建数组的实际语法时,我感到头疼。

\n

让我们使用freeCodeCamp 的倒计时练习作为示例。这是正确的结果:

\n
function countdown(n) {\n  if (n < 1) {\n    return [];\n  } else {\n    const arr = countdown(n - 1);\n    arr.unshift(n);\n    return arr;\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这里的想法显然是有一个函数从给定的n倒数到 1。我理解这个想法,但我有几个问题:

\n

1 -为什么将数组声明为常量分配给递归调用?数组不应该更好地在外部声明为变量(因为它会更改值)\xe2\x80\x93 并且其当前位置不意味着每次发生递归时都会声明(并覆盖)它?

\n

2 -我得到了当前值的不变,但为什么它是在递归调用之后声明的?难道它不应该放置在之前(上面一行)以便在函数循环本身之前取消移位值吗?

\n

3 -同样,为什么 …

javascript arrays recursion loops

3
推荐指数
1
解决办法
341
查看次数

如何使用p5创建多个画布?

我想尝试一些 3 维立体视觉的东西,我需要 2 个画布,但我什么也没找到。

我尝试过使用canvas1.background(200);

function setup() {
    let canvas1 = createCanvas(100, 100);
    canvas1.position(0,0);
}
function draw() {
//for canvas 1
    background(100);
    rotateX(frameCount * 0.01);
    rotateZ(frameCount * 0.01);
    cone(30, 50);
}
function setup() {
    let canvas2 = createCanvas(100, 100);
    canvas2.position(100,0);
}
function draw() {
//for canvas 2
    background(100);
    rotateX(frameCount * 0.01);
    rotateZ(frameCount * 0.02);
    cone(30, 50);
}
Run Code Online (Sandbox Code Playgroud)

javascript p5.js

2
推荐指数
1
解决办法
5007
查看次数

如何让所有子文本用 ; 分隔 在 JavaScript 中?

我有以下问题:

我想从所有以分号分隔的子元素中获取文本。

请参阅以下示例:

<div class="parent">        
  <div class="children 1"> </div>
  <div class="children 2 ">TEXT 2</div>     
  <div class="children 3 ">TEXT 3</div>
  <div class="children 4 ">TEXT 4</div>                                         
</div> 
Run Code Online (Sandbox Code Playgroud)

我知道,我可以用它 document.querySelector('.parent').textContent 来获得TEXT 2 TEXT 3 TEXT 4

但我想得到TEXT 2;TEXT 3;TEXT 4(请注意,TEXT 2 之前没有分号,因为孩子 1 没有文本)

谢谢你的帮助!

javascript

2
推荐指数
1
解决办法
4255
查看次数