相关疑难解决方法(0)

如何检查变量是否是JavaScript中的数组?

我想检查变量是JavaScript中的数组还是单个值.

我找到了一个可能的解决方案......

if (variable.constructor == Array)...
Run Code Online (Sandbox Code Playgroud)

这是最好的办法吗?

javascript arrays variables

1713
推荐指数
14
解决办法
94万
查看次数

理解Object.create()和new SomeFunction()之间的区别

我最近Object.create()在JavaScript中偶然发现了这个方法,并试图推断它与创建一个对象的新实例有什么不同new SomeFunction(),当你想要使用另一个时.

请考虑以下示例:

var test = {
  val: 1,
  func: function() {
    return this.val;
  }
};
var testA = Object.create(test);

testA.val = 2;
console.log(test.func()); // 1
console.log(testA.func()); // 2

console.log('other test');
var otherTest = function() {
  this.val = 1;
  this.func = function() {
    return this.val;
  };
};

var otherTestA = new otherTest();
var otherTestB = new otherTest();
otherTestB.val = 2;
console.log(otherTestA.val); // 1 
console.log(otherTestB.val); // 2

console.log(otherTestA.func()); // 1
console.log(otherTestB.func()); // 2
Run Code Online (Sandbox Code Playgroud)

请注意,在两种情况下都观察到相同的行为.在我看来,这两种情况之间的主要区别是:

  • Object.create()实际使用的对象实际上形成了新对象的原型,而在new …

javascript prototype object-create

372
推荐指数
10
解决办法
12万
查看次数

如何让Knockout JS在按键上进行数据绑定而不是丢失焦点?

这个淘汰js的例子在你编辑一个字段并按下TAB时就可以工作,视图模型数据以及字段下面的文本都会被更新.

如何更改此代码以便每次按键更新viewmodel数据?

替代文字

<!doctype html>
<html>
    <title>knockout js</title>
    <head>
        <script type="text/javascript" src="js/knockout-1.1.1.debug.js"></script>
        <script type="text/javascript">
        window.onload= function() {

            var viewModel = {
                firstName : ko.observable("Jim"),
                lastName : ko.observable("Smith")
            };
            viewModel.fullName = ko.dependentObservable(function () {
                return viewModel.firstName() + " " + viewModel.lastName();
            });

            ko.applyBindings(viewModel);
       }
        </script>
    </head>
    <body>
        <p>First name: <input data-bind="value: firstName" /></p>
        <p>Last name: <input data-bind="value: lastName" /></p>
        <h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

190
推荐指数
4
解决办法
7万
查看次数

为什么带对象的typeof数组返回"Object"而不是"Array"?

可能重复:
JavaScript:检查对象是否为数组?

为什么一个对象数组被认为是一个对象,而不是一个数组?例如:

$.ajax({
    url: 'http://api.twitter.com/1/statuses/user_timeline.json',
    data: { screen_name: 'mick__romney'},
    dataType: 'jsonp',
    success: function(data) {
        console.dir(data); //Array[20]
        alert(typeof data); //Object
    }
});?
Run Code Online (Sandbox Code Playgroud)

小提琴

javascript arrays jquery typeof object

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

jquery $实际上返回了什么?

我已经阅读了JQuery文档,虽然很多注意力都集中在你应该传递的函数上,但是我没有看到任何关于它实际返回的信息.

特别是,它总是返回一个数组,即使只找到一个元素?没有找到任何东西时它会返回null吗?这记录在哪里?

我知道jquery方法可以应用于返回值,但是如果我想直接使用返回值呢?

jquery

112
推荐指数
4
解决办法
4万
查看次数

如何检测变量是否为数组

什么是确定JavaScript中的变量是否为数组的最佳事实标准跨浏览器方法?

在网上搜索有很多不同的建议,有些是好的,有些是无效的.

例如,以下是一种基本方法:

function isArray(obj) {
    return (obj && obj.length);
}
Run Code Online (Sandbox Code Playgroud)

但是,请注意如果数组为空,或者obj实际上不是数组但实现了长度属性等会发生什么.

那么哪种实现在实际工作方面是最好的,跨浏览器并且仍然有效地执行?

javascript arrays

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

识别数组对象

如何知道对象是否是数组?

 var x=[];

console.log(typeof x);//output:"object"
alert(x);//output:[object Object]
console.log(x.valueOf())//output:<blank>? what is the reason here?
console.log([].toString()); also outputs <blank>     
Object.prototype.toString.call(x) output:[object Array] how?
Run Code Online (Sandbox Code Playgroud)

自console.log([].toString()); 输出:空白

第一名:

为什么我在最后的第二个陈述中空白?

第二:

有没有办法确切知道对象是什么:数组或普通对象({})没有x.join()等各自方法的帮助,表明x是一个数组,而不是这种方式.

实际上,在jquery选择中,如$("p")返回jquery对象,所以如果我使用

console.log(typeof $("p"));//output:"object
Run Code Online (Sandbox Code Playgroud)

我只是想知道对象的实际名称.请它.谢谢你的帮助

javascript jquery

22
推荐指数
1
解决办法
607
查看次数

如何通过检查多个值来过滤数组/对象

我正在玩数组试图更多地理解它们,因为我最近倾向于与它们合作.我得到了这种情况,我想搜索一个数组并将它的元素值与另一个包含某些选定过滤器值的数组进行比较.

例如,如果我选择3个过滤器,我希望稍后在新数组中写入匹配 - 只匹配所有3个过滤器.

为了便于理解,我在http://jsfiddle.net/easwee/x8U4v/36/上设置了一个示例

代码是:

var workItems =   [
    { "id": 2616, "category": ".category-copy .category-beauty .category-fashion"}, //this is a match
    { "id": 1505, "category": ".category-beauty"}, // NOT
    { "id": 1500, "category": ".category-beauty .category-fashion"}, // NOT
    { "id": 692, "category": ".category-stills .category-retouching"}, // NOT
    { "id": 593, "category": ".category-beauty .category-capture .category-fashion .category-product .category-stills .category-stills-retouching "}, // NOT
    { "id": 636, "category": ".category-beauty .category-copy .category-fashion"}, //this is a match
    { "id": 547, "category": ".category-fashion .category-lifestyle .category-stills .category-stills-retouching "}, // …
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

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

如何在小胡子模板中处理字符串或字符串数​​组

我有一个简单/初学者的问题,在我的应用程序中使用小胡子模板(或更准确地说是Hogan).我使用的API有时会返回一个String,有时会返回一个字符串数组.

我知道可以将String包装在单个元素数组中,但是还有一种方法可以从胡子模板中处理这个选项吗?

使用普通部分
{{#stringOrArray}} <li>{{.}}</li> {{/stringOrArray}} 如果只是一个字符串,则不会打印该值.

mustache hogan.js

9
推荐指数
1
解决办法
6228
查看次数

Angular2相当于angular.isArray

我正在玩NG2,我正在寻找相当于angular.isArray.

是的,我试着谷歌但没有运气.我可能正在考虑这个问题.

我尝试在我的ng2-app中使用的方法是这样的:

function periodsFormat(dates, func) {
  if (!angular.isArray(dates)) { return func(dates); }
  return dates.map(func).join('-');
}
Run Code Online (Sandbox Code Playgroud)

当我设法替换(!angular.isArray...NG2-ish时,它肯定会起作用.谢谢!

更新:

谢谢你们两个,我结束了这样做:

function periodsFormat(dates, func) {
  if (!Array.isArray(dates)) { return func(dates); }
  return dates.map(func).join('-');
}
Run Code Online (Sandbox Code Playgroud)

angular

8
推荐指数
1
解决办法
3878
查看次数