小编zah*_*bba的帖子

如何解决TypeError:无法将undefined或null转换为object

我编写了几个有效复制JSON.stringify()的函数,将一系列值转换为字符串化版本.当我将代码移植到JSBin并在某些示例值上运行它时,它运行正常.但我在设计用于测试此功能的规格转换器中遇到此错误.

我的代码:

  // five lines of comments
  var stringify = function(obj) {
  if (typeof obj === 'function') { return undefined;}  // return undefined for function
  if (typeof obj === 'undefined') { return undefined;} // return undefined for undefined
  if (typeof obj === 'number') { return obj;} // number unchanged
  if (obj === 'null') { return null;} // null unchanged
  if (typeof obj === 'boolean') { return obj;} // boolean unchanged
  if (typeof obj === 'string') { return '\"' + obj …
Run Code Online (Sandbox Code Playgroud)

javascript

54
推荐指数
5
解决办法
17万
查看次数

矩阵的螺旋遍历 - JavaScript中的递归解决方案

我正在尝试提出一个像这样的矩阵的解决方案:

[[1,2,3,4],
 [5,6,7,8],
 [9,10,11,12],
 [13,14,15,16]]
Run Code Online (Sandbox Code Playgroud)

并返回一个以螺旋形式遍历数组的数组,因此在此示例中: [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]

我无法使这个递归解决方案工作,其中结果数组采用第一个数组,其余数组的最终元素,反向顺序的底部数组,然后是中间数组的第一个元素,以及然后在不使用外部"shell"的情况下对数组进行重构,以便可以递归调用它,直到中心有一个元素的数组或2x2矩阵(我的基本情况,尽管后者可能不是必需的......)

我的解决方案不起作用,如下所示.关于如何使这项工作的任何建议?

var spiralTraversal = function(matriks){
  var result = [];
    var goAround = function(matrix) {
        var len = matrix[0].length;
        if (len === 1) {
            result.concat(matrix[0]);
            return result;
        }
        if (len === 2) {
            result.concat(matrix[0]);
            result.push(matrix[1][1], matrix[1][0]);
            return result;
        }
        if (len > 2) {
            // right
            result.concat(matrix[0]);
            // down
            for (var j=1; j < matrix.length - 1; j++) {
                result.push(matrix[j][matrix.length -1]);
            }
            // left
            for (var l=matrix.length - 2; l > 0; l--) …
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm recursion matrix

10
推荐指数
3
解决办法
9683
查看次数

在JavaScript中将前导零添加到二进制字符串的方法

我已经使用.toString(2)将整数转换为二进制,但只要需要它就返回一个二进制(即第一位是1).

那么:

num = 2;
num.toString(2) // yields 10. 
Run Code Online (Sandbox Code Playgroud)

如何产生八位字节00000010?

javascript binary

7
推荐指数
2
解决办法
9367
查看次数

如何区分两个本地存储库

我有两个存储库,我已经下载到我的本地计算机(作为我解压缩的.zip文件),它们位于不同的文件夹中.内容几乎相同,但其中有数千个文件.

是否可以使用Git对它们进行比较并找到那些微小的变化?我怀疑5-6个文件中有一些变化,但我需要找到它们.

如果使用上传版本更容易,我在Github中都有它们.如果它很重要(我怀疑它没有),我的本地环境是Mac.

注意:这些repos都不是另一个的分支.(一个是朋友的回购的分支;两个回购分享了我们分叉的最近的共同起源)

git github

7
推荐指数
1
解决办法
7618
查看次数

选择单选按钮来更改状态

如何设置input type="radio"状态值将根据用户选择而变化?

在这种情况下,我希望按钮name="1"成为默认选择的按钮,但如果name="2"用户选择按钮,则某些状态值应该改变。

<div data-toggle="buttons">
  <label>
    <input type="radio" name="1" defaultChecked onChange={this.handleRadioButton}>Option 1</input>
  </label>
  <label>
    <input type="radio" name="2" onChange={this.handleRadioButton}>Option 2</input>
  </label>
</div>
Run Code Online (Sandbox Code Playgroud)

reactjs

6
推荐指数
1
解决办法
9365
查看次数

Cordova InAppPurchase:.getProducts() 返回空数组

我一直在 Ionic 应用程序中使用cordova-plugin-inapppurchase ,它似乎执行时没有错误,但每次都会返回一个空数组。

我已经为我的应用程序的新版本(当然是未发布的)创建了一个测试产品。它处于“准备提交”状态。

在 iTunes Connect 中,我有捆绑 ID:

com.testing.testingapp

在 Xcode 中,捆绑包标识符和版本默认为不同的内容(这是一个更早的错误),但我用以下内容覆盖它,它接受并允许我构建:

com.testing.testingapp

2.0 (具有产品的版本)

我在控制器中的代码:

  console.log('about to try inAppPurchase.getProducts()');
  inAppPurchase
    .getProducts(['com.testing.testingapp.50_tokens']) // Product ID
    .then(function (products) {
      console.log("----------------------------");
      console.log(products);
      console.log("----------------------------");
    })
    .catch(function (err) {
      console.log("----------------------------");
      console.log(err);
      console.log("----------------------------");
    });
Run Code Online (Sandbox Code Playgroud)

一旦我点击调用该控制器的路线,我在控制台中看到的内容是:

[Log] about to try inAppPurchase.getProducts() 
[Log] ----------------------------  
[Log] [] (0)  
[Log] ----------------------------
Run Code Online (Sandbox Code Playgroud)

它似乎执行得很好,但没有返回50_tokens我正在测试的版本处于“准备提交”状态的产品 ( )。

in-app-purchase ios cordova

5
推荐指数
0
解决办法
1157
查看次数

使用递归重复的排列 - JavaScript

我正在研究一种递归算法,该算法接收一个包含三个不同元素的数组(比如说['a', 'b', 'c'],返回一个二维数组,其中包含允许重复的所有可能的变化(如此[['a', 'a', 'a'], ['a', 'a', 'b'], ['a', 'b', 'b'],...]).但是我的代码失败了,我不知道为什么.

var abc = function () {
  var holdingArr = [];
  var threeOptions = ["a", "b", "c"];
  var singleSolution = [];  
  var recursiveABC = function(arr) {
      if (singleSolution.length > 2) {
        holdingArr.push(singleSolution);
        singleSolution = [];
        return;
      }
      for (var i=0; i < arr.length; i++) {
        recursiveABC(arr.slice(i+1));
      }
  };
  recursiveABC(threeOptions);
  return holdingArr;
};
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm recursion permutation

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

如何在多维数组中分配单个元素(JavaScript)

我不知道为什么我看到以下内容:

const sideLength = 4;
const multiArray = new Array(sideLength).fill(new Array(sideLength));
console.log(multiArray)
var counter = 1;
multiArray[3][1] = counter;
console.log('multiArray:', multiArray)
Run Code Online (Sandbox Code Playgroud)

控制台输出:

[ [ , , ,  ], [ , , ,  ], [ , , ,  ], [ , , ,  ] ]
multiArray: [ [ , 1, ,  ], [ , 1, ,  ], [ , 1, ,  ], [ , 1, ,  ] ]
Run Code Online (Sandbox Code Playgroud)

我原以为第二行输出是:

multiArray: [ [ , , ,  ], [ , , ,  ], …
Run Code Online (Sandbox Code Playgroud)

javascript arrays multidimensional-array

0
推荐指数
1
解决办法
66
查看次数