我试图在数组不起作用时从数组中的每个对象中删除这两个属性。每个对象都位于一个数组内。我的意思是主数组包含对象数组。有没有一种简单的方法可以解决这个问题,而无需使用map()两次?在这种情况下如何返回主修改数组?
const modifiedItems = this.items.map(item => {
delete item.created,
delete item.removed
return item
})
Run Code Online (Sandbox Code Playgroud)
数据如下:
this.items = [
[{ removed: 1, created: 1, a:2, b: 2, c: 3}]
[{ removed: 1, created: 1, a:2, b: 2, c: 3}, { removed: 1, created: 1, a:2, b: 2, c: 3},]
];
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,因为它没有映射到主数组内的数组。如何最好地从主数组中所有数组的每个对象中删除这些属性?
javascript arrays javascript-objects ecmascript-5 ecmascript-6
我有一个如下所示的数组对象
allRoles =
[
{ id: "0", name: "Tester", description: "Role is testing" },
{ id: "1", name: "Developer", description: "Role is Developer" },
{ id: "2", name: "Admin", description: "Role is Admin" },
{ id: "3", name: "Manager", description: "Role is Manager" },
{ id: "4", name: "Reviewer", description: "Role is Reviewer" }
]
assignedRoles =
[
{ id: "0", name: "Tester", description: "Role is testing" },
{ id: "4", name: "Reviewer", description: "Role is Reviewer" }
]
Run Code Online (Sandbox Code Playgroud)
考虑到 …
我有一个单级JSON来搜索给定值的存在.在ecma5中是否提供了一种紧凑的方法?
我有一行遗留代码来分割半冒号的字符串:
var adds = emailString.split(/;+/).filter(Boolean);
Run Code Online (Sandbox Code Playgroud)
这filter(Boolean)部分可以做什么?
我经常发现自己处于我想要的情况,在单个(原子)操作中,将一个项添加到数组并返回该新数组.
['a', 'b'].push('c');
Run Code Online (Sandbox Code Playgroud)
将无法正常工作,因为它返回新的长度.
我知道以下代码有效
['a', 'b'].concat(['c']);
Run Code Online (Sandbox Code Playgroud)
但我发现它是丑陋的代码(组合两个数组只是为了在第一个数组的末尾添加一个项目).
我无法使用Array.splice()它,因为它修改原始数组(并返回已删除的项目).Array.slice()确实返回浅拷贝,但您无法添加新项目.
ES6
我知道es6你可以使用
[...['a', 'b'], 'c']
Run Code Online (Sandbox Code Playgroud)
但我正在寻找es5解决方案
Lodash
我没关系 lodash
只是为了清楚
我知道这可以通过几种不同的方式实现(比如Array.concat()上面的方法),但我正在寻找一个直观的简单代码,它不会"误用"其他运算符
假设我有一个包含多个对象的数组,如:
var arr = [{ 'credit': 1, 'trash': null }, { 'credit': 2, 'trash': null}]
Run Code Online (Sandbox Code Playgroud)
我想credit从arr数组中得到所有值的总和.所以期望的总和值是3.所以我用这个代码:
arr.reduce((obj, total) => obj.credit + total)
但是当我跑这个时,我觉得"1[object Object]"这真的很奇怪.
Ps:我正在尝试使用ES6而不是ES5来实现这一点
Object.entries(obj).reduce((acc, [key, value]) => {
if (someCondition(key, value)) {
acc[key] = value;
}
return acc;
}, {});
Object.entries(obj)
.filter(([key, value]) => someCondition(key, value))
.reduce((acc, [key, value]) => {
acc[key] = value;
return acc;
}, {});
Run Code Online (Sandbox Code Playgroud)
上面两个块做同样的事情:创建一个副本,obj删除一些基于someCondition.
哪种方式是首选,为什么?
我正在学习JavaScript作为我的第一语言,我在这里得到的想法就功能而言,但我不明白最终返回值是什么.
它是干什么用的?
有人可以解释我打字稿中的类和对象有什么区别。
class greeter{
Name: string;
Sayhello(){
console.log("hello")
}
}
Run Code Online (Sandbox Code Playgroud)
在我使用这个之前
var greeter = {
Name : "",
Sayhello: function sayhello(){
console.log("hello");
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些 js 代码,在测试过程中,这些代码被分成多个部分加载,并被连接起来并变得丑陋以供生产。
我有一个配置文件,它定义了一个变量myConfig并具有业务逻辑脚本,该脚本myConfig需要设置并全局可用。
这工作正常,并且在开发或生产期间没有错误。
问题是我想使用no-undefeslint 规则从丢失的声明中捕获其他变量和函数。所以我正在寻找定义一组预期变量的方法。
有没有办法定义这样的变量?
function handleDeposit (accountNumber, amount) {
type: 'DEPOSIT',
accountNumber,
amount
}
Run Code Online (Sandbox Code Playgroud)
它在调用时返回undefined.我不确定es6在这里使用的是什么功能
它等同于......
function handleDeposit (accountNumber, amount) {
return {
type: 'DEPOSIT',
accountNumber: accountNumber,
amount: amount
}
}
Run Code Online (Sandbox Code Playgroud) 当我运行以下代码时,出现错误:
类型错误:无法重新定义属性:isBoolean
为什么我不能重新定义这些属性?
function isBoolean() {
var value = arguments[0];
if (!arguments.length) {return;}
if (value===undefined || value===null) { return false; }
if (typeof(value) === "boolean") {
return true;
} else {
return false;
}
}
function isString() {
var value = arguments[0];
if (!arguments.length) {return;}
if (value===undefined || value===null) { return false; }
if (typeof(value) === "string") {
return true;
} else {
return false;
}
}
function isNumber() {
var value = arguments[0];
if (!arguments.length) {return;}
if (onoff) { …Run Code Online (Sandbox Code Playgroud)以下代码在 ES5 编译器中的输出是什么?它会抛出任何错误还是会正常工作?
let foo = 123;
let {x,y} = getValues();
Run Code Online (Sandbox Code Playgroud) ecmascript-5 ×13
javascript ×13
ecmascript-6 ×5
arrays ×3
typescript ×2
angular ×1
angular9 ×1
eslint ×1
json ×1
lodash ×1
node.js ×1